Skip to main content
Kent Academic Repository

Communicating Haskell Processes: Composable Explicit Concurrency Using Monads

Brown, Neil C.C. (2008) Communicating Haskell Processes: Composable Explicit Concurrency Using Monads. In: Welch, Peter H. and Stepney, S. and Polack, Fiona A.C. and Barnes, Frederick R.M. and McEwan, Alistair A. and Stiles, Gardiner S. and Broenink, Jan F. and Sampson, Adam T., eds. Communicating Process Architectures 2008. Concurrent Systems Engineering . IOS Press, Amsterdam, Netherlands, pp. 67-83. ISBN 978-1-58603-907-3. E-ISBN 978-1-60750-368-2. (doi:10.3233/978-1-58603-907-3-67) (KAR id:24103)

Abstract

Writing concurrent programs in languages that lack explicit support for concurrency can often be awkward and difficult. Haskell's monads provide a way to explicitly specify sequence and effects in a functional language, and monadic combinators allow composition of monadic actions, for example via parallelism and choice two core aspects of Communicating Sequential Processes (CSP). We show how the use of these combinators, and being able to express processes as first-class types (monadic actions) allow for easy and elegant programming of process-oriented concurrency in a new CSP library for Haskell: Communicating Haskell Processes.

Item Type: Book section
DOI/Identification number: 10.3233/978-1-58603-907-3-67
Uncontrolled keywords: haskell concurrency chp
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Neil Brown
Date Deposited: 29 Mar 2010 12:14 UTC
Last Modified: 12 Jul 2022 10:40 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/24103 (The current URI for this page, for reference purposes)

University of Kent Author Information

Brown, Neil C.C..

Creator's ORCID:
CReDIT Contributor Roles:
  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.