Abstract
In this paper we present the Brisk monadic framework, in which the usual monadic style of interfacing is adapted to accommodate a deterministic form of concurrency. Its main innovation is to allow actions on state components. This is a key issue which enables state splitting, a technique which assigns to each new thread a part of the state, a substate, to act upon. Distinct concurrent threads are restricted to access disjoint substates. A purely functional prototype implementation is presented to demonstrate these ideas. The resulting system acts as a basis for offering a purely functional form of concurrency, extending the expressiveness of functional languages without spoiling the semantics by introducing non-determinism.
Brisk stands for Bristol Haskell compiler
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
P. Achten and M.J. Plasmeijer. The Ins and Outs of Clean I/O. Journal of Functional Programming, 5(1):81–110, 1995.
L. Augustsson and B. Boutel et al. Report on the Functional Programming Language Haskell, Version 1.4, 1997.
D. Carter. Deterministic Concurrency. Master’s thesis, Department of Computer Science, University of Bristol, September 1994.
S.O. Finne and S.L. Peyton Jones. Programming Reactive Systems in Haskell. In Proc. 1994 Glasgow Functional Programming Workshop, Ayr, Scotland, 1994. Springer-Verlag WiCS.
S.O. Finne and S.L. Peyton Jones. Composing Haggis. In Proc 5th Eurographics Workshop on Programming Paradigms in Graphics, Maastricht, September 1995.
S.L. Peyton Jones, A.D. Gordon, and S.O. Finne. Concurrent Haskell. In Proc. 23rd. ACM Symposium on Principles of Programming Languages (POPL’ 96), pages 295–308, St Petersburg Beach, Florida, January 1996. ACM Press.
I. Holyer, N. Davies, and E. Spiliopoulou. Distribution in a Demand Driven Style. In 1st International Workshop on Component-based Software Development in Computational Logic, September 1998.
Ian Holyer and David Carter. Concurrency in a Purely Declarative Style. In J.T. O’Donnell and K. Hammond, editors, Proc. 1993 Glasgow Functional Programming Workshop, pages 145–155, Ayr, Scotland, 1993. Springer-Verlag WiCS.
K. Kagawa. Compositional References for Stateful Functional Programs. In Proc. 1997 ACM International Conference on Functional Programming (ICFP’ 97), Amsterdam, The Netherlands, June 1997. ACM Press.
J. Launchbury. Lazy Imperative Programming. In ACM SIGPLAN Workshop on State in Programming Languages, June 1993.
J. Launchbury and S.L. Peyton Jones. Lazy Functional State Threads. In Proc. 1996 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’ 96), Orlando, 1994. ACM Press.
S.L. Peyton Jones and J. Launchbury. State in Haskell. Lisp and Symbolic Computation, 8(4):293–341, 1995.
S.L. Peyton Jones and P.L. Wadler. Imperative Functional Programming. In Proc. 20th. ACM Symposium on Principles of Programming Languages (POPL’ 93), Charleston, January 1993. ACM Press.
P.L. Philip. Comprehending Monads. In Proc. 1990 ACM Conference on Lisp and Functional Programming (LFP’ 90), pages 61–78, June 1990.
P. Serrarens. BriX-A Deterministic Concurrent Functional X Windows System. Master’s thesis, Computer Science Department, Bristol University, June 1995.
W.R. Stoye. A New Scheme for Writing Functional Operating Systems. Technical Report Technical Report 56, Cambridge University, Computer Lab, 1984.
D. Turner. Functional Programming and Communicating Processes. In J.W. Bakker, A.J. Nijman, and P.C. Treleaven, editors, PARLE II, volume 259 of LNCS, pages 54–74, Eindhoven, The Netherlands, June 1987. Springer Verlag.
P.L. Wadler. The Essence of Functional Programming. In Proc. 19th. ACM Symposium on Principles of Programming Languages (POPL’ 92), Albuquerque (New Mexico, USA), January 1992. ACM Press.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Holyer, I., Spiliopoulou, E. (1999). Concurrent Monadic Interfacing. In: Hammond, K., Davie, T., Clack, C. (eds) Implementation of Functional Languages. IFL 1998. Lecture Notes in Computer Science, vol 1595. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48515-5_5
Download citation
DOI: https://doi.org/10.1007/3-540-48515-5_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66229-7
Online ISBN: 978-3-540-48515-5
eBook Packages: Springer Book Archive