dc.contributor.author
Scholz, Enno
dc.date.accessioned
2018-06-08T07:53:28Z
dc.date.available
2009-03-17T11:06:03.271Z
dc.identifier.uri
https://refubium.fu-berlin.de/handle/fub188/18938
dc.identifier.uri
http://dx.doi.org/10.17169/refubium-22616
dc.description.abstract
A 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.
en
dc.relation.ispartofseries
urn:nbn:de:kobv:188-fudocsseries000000000021-2
dc.rights.uri
http://www.fu-berlin.de/sites/refubium/rechtliches/Nutzungsbedingungen
dc.subject.ddc
000 Informatik, Informationswissenschaft, allgemeine Werke::000 Informatik, Wissen, Systeme::004 Datenverarbeitung; Informatik
dc.title
A concurrency monad based on constructor primitives
dc.title.subtitle
or, being first-class is not enough
refubium.affiliation
Mathematik und Informatik
de
refubium.affiliation.other
Institut für Informatik
refubium.mycore.fudocsId
FUDOCS_document_000000001201
refubium.resourceType.isindependentpub
no
refubium.series.name
Freie Universität Berlin, Fachbereich Mathematik und Informatik
refubium.series.reportNumber
95-1
refubium.mycore.derivateId
FUDOCS_derivate_000000000279
dcterms.accessRights.openaire
open access