A concurrency monad based on constructor primitives
Scholz, Enno ;  Universität <Berlin, Freie Universität> / Fachbereich Mathematik und Informatik

Main titleA concurrency monad based on constructor primitives
Subtitleor, being first-class is not enough
AuthorScholz, Enno
InstitutionUniversität <Berlin, Freie Universität> / Fachbereich Mathematik und Informatik
No. of Pages11 S.
Series Freie Universität Berlin, Fachbereich Mathematik : Ser. B, Informatik ; 95,1
Classification (DDC)004 Data processing and Computer science
AbstractA monad is presented which is suitable for writing concurrent programs in a purely functional programming language. In contrast to, for instance, the IO monad [Launchbury, Peyton Jones 94], the primitives added to the functional language are not represented as built-in functions operating on the monad, but rather by Perry-style constructors [Perry 90] of a distinguished algebraic data type. Therefore, monadic expressions representing concurrent computations are not only first-class objects of the language; in addition, they may even be decomposed.
A number of examples show that decomposability of concurrent code is crucial for the
purely functional construction of more powerful concurrency abstractions like rendezvous,
remote procedure call, and critical regions from the primitives.
The paper argues that this technique helps to remedy a recurrent dilemma in the design of
concurrent programming languages, namely, how to keep the language small, coherent,
and rigorously defined, yet to provide the programmer with all the communication
constructs required.
It is suggested that functional languages are not only capable of describing concurrent
programs, but that in terms.
If your browser can't open the file, please download the file first and then open it
FU DepartmentDepartment of Mathematics and Computer Science
Other affiliation(s)Institut für Informatik
Year of publication1995
Type of documentMaps
Terms of use/Rights Nutzungsbedingungen
Created at2009-03-17 : 11:06:03
Last changed2015-01-22 : 04:41:46
Static URLhttp://edocs.fu-berlin.de/docs/receive/FUDOCS_document_000000001201