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)
PDF
Language: English |
|
Download this file (PDF/190kB) |
Preview |
Request a format suitable for use with assistive technology e.g. a screenreader | |
Official URL: http://dx.doi.org/10.3233/978-1-58603-907-3-67 |
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: | 05 Nov 2024 10:03 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/24103 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):