Pardis: a process calculus for parallel and distributed programming in Haskell.
Saved in:
| Title: | Pardis: a process calculus for parallel and distributed programming in Haskell. |
|---|---|
| Authors: | Blöcker, Christopher1 chrisbloecker@googlemail.com, chb@fh-wedel.de, Hoffmann, Ulrich1 uh@fh-wedel.de |
| Source: | Journal of Supercomputing. Apr2018, Vol. 74 Issue 4, p1473-1484. 12p. |
| Subjects: | Haskell (Computer program language), Distributed computing, Parallel programming, Domain-specific programming languages, Abstraction (Computer science) |
| Abstract: | Parallel programming and distributed programming involve substantial amounts of boilerplate code for process management and data synchronisation. This leads to increased bug potential and often results in unintended non-deterministic program behaviour. Moreover, algorithmic details are mixed with technical details concerning parallelisation and distribution. Process calculi are formal models for parallel and distributed programming but often leave details open, causing a gap between formal model and implementation. We propose a fully deterministic process calculus for parallel and distributed programming and implement it as a domain-specific language in Haskell to address these problems. We eliminate boilerplate code by abstracting from the exact notion of parallelisation and encapsulating it in the implementation of our process combinators. Furthermore, we achieve correctness guarantees regarding process composition at compile time through Haskell’s type system. Our result can be used as a high-level tool to implement parallel and distributed programs. [ABSTRACT FROM AUTHOR] |
| Copyright of Journal of Supercomputing is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.) | |
| Database: | Engineering Source |
|
Full text is not displayed to guests.
Login for full access.
|
|
| FullText | Links: – Type: pdflink Text: Availability: 1 |
|---|---|
| Header | DbId: egs DbLabel: Engineering Source An: 128656659 AccessLevel: 6 PubType: Academic Journal PubTypeId: academicJournal PreciseRelevancyScore: 0 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Pardis: a process calculus for parallel and distributed programming in Haskell. – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Blöcker%2C+Christopher%22">Blöcker, Christopher</searchLink><relatesTo>1</relatesTo><i> chrisbloecker@googlemail.com, chb@fh-wedel.de</i><br /><searchLink fieldCode="AR" term="%22Hoffmann%2C+Ulrich%22">Hoffmann, Ulrich</searchLink><relatesTo>1</relatesTo><i> uh@fh-wedel.de</i> – Name: TitleSource Label: Source Group: Src Data: <searchLink fieldCode="JN" term="%22Journal+of+Supercomputing%22">Journal of Supercomputing</searchLink>. Apr2018, Vol. 74 Issue 4, p1473-1484. 12p. – Name: Subject Label: Subjects Group: Su Data: <searchLink fieldCode="DE" term="%22Haskell+%28Computer+program+language%29%22">Haskell (Computer program language)</searchLink><br /><searchLink fieldCode="DE" term="%22Distributed+computing%22">Distributed computing</searchLink><br /><searchLink fieldCode="DE" term="%22Parallel+programming%22">Parallel programming</searchLink><br /><searchLink fieldCode="DE" term="%22Domain-specific+programming+languages%22">Domain-specific programming languages</searchLink><br /><searchLink fieldCode="DE" term="%22Abstraction+%28Computer+science%29%22">Abstraction (Computer science)</searchLink> – Name: Abstract Label: Abstract Group: Ab Data: Parallel programming and distributed programming involve substantial amounts of boilerplate code for process management and data synchronisation. This leads to increased bug potential and often results in unintended non-deterministic program behaviour. Moreover, algorithmic details are mixed with technical details concerning parallelisation and distribution. Process calculi are formal models for parallel and distributed programming but often leave details open, causing a gap between formal model and implementation. We propose a fully deterministic process calculus for parallel and distributed programming and implement it as a domain-specific language in Haskell to address these problems. We eliminate boilerplate code by abstracting from the exact notion of parallelisation and encapsulating it in the implementation of our process combinators. Furthermore, we achieve correctness guarantees regarding process composition at compile time through Haskell’s type system. Our result can be used as a high-level tool to implement parallel and distributed programs. [ABSTRACT FROM AUTHOR] – Name: AbstractSuppliedCopyright Label: Group: Ab Data: <i>Copyright of Journal of Supercomputing is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.) |
| PLink | https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=128656659 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1007/s11227-018-2289-6 Languages: – Code: eng Text: English PhysicalDescription: Pagination: PageCount: 12 StartPage: 1473 Subjects: – SubjectFull: Haskell (Computer program language) Type: general – SubjectFull: Distributed computing Type: general – SubjectFull: Parallel programming Type: general – SubjectFull: Domain-specific programming languages Type: general – SubjectFull: Abstraction (Computer science) Type: general Titles: – TitleFull: Pardis: a process calculus for parallel and distributed programming in Haskell. Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Blöcker, Christopher – PersonEntity: Name: NameFull: Hoffmann, Ulrich IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 04 Text: Apr2018 Type: published Y: 2018 Identifiers: – Type: issn-print Value: 09208542 Numbering: – Type: volume Value: 74 – Type: issue Value: 4 Titles: – TitleFull: Journal of Supercomputing Type: main |
| ResultId | 1 |