Abstract
Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments or reactive systems. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism. This paper proposes an adaptation of a functional language which provides concurrency without the introduction of non-determinism or timing information, and indeed without any alteration to the usual semantics, thus retaining the purely declarative nature of functional programming.
The expressiveness of this deterministic form of concurrency is explored by presenting and discussing outlines of designs for a file manager, a window system and a process communication mechanism. Taken together, these demonstrate the feasibility of a deterministic design for a complete single-user concurrent working environment.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
F.W. Burton, “Nondeterminism with referential transparency in functional programming”, Proc. 1st international Lisp conference, 1980.
M. Carlsson & T. Hallgren, “Fudgets: a graphical user interface in a lazy functional language”, submitted to FPCA, 1993.
W. Clinger, “Nondeterministic call by need is neither lazy nor by name”, Proc. Symposium on LISP and Functional Programming, 1982.
P. Hudak et. al., “Report on the programming language Haskell”, ACM SIGPLAN Notices Volume 27 Number 5, 1992
S.L. Peyton Jones & C. Clack & J. Salkild, “High-performance parallel graph reduction”, Proc. Parallel Architectures and Languages Europe, Lecture Notes in Computer Science 365, Springer Verlag, 1989
D. Harrison, “RUTH: a functional language for real-time programming”, Proc. Parallel Architectures and Languages Europe, Lecture Notes in Computer Science 259, Springer-Verlag, 1987
D. Harrison & S.B. Jones, “The Semantics of Implicit Time Determinate Choice”, in W. Joosen & E. Milgrom (editors), Parallel Computing: From Theory to Sound Practice, IOS Press, 1992
P. Henderson, “Purely functional operating systems”, in J. Darlington, P. Henderson, D.A. Turner (editors) “Functional Programming and its Applications”, Cambridge University Press, 1982.
J. Hughes & J. O’Donnell, “Nondeterministic Functional Programming with Sets”, Proceedings of the 1990 Banf Conference on Higher Order Reasoning, 1990.
The MIT X Window System Manual Set (Volumes 1 and 2), IXI Ltd.
W. Stoye, “A new scheme for writing functional operating systems”, Technical report 56, Cambridge University Computer Laboratory, 1984.
D. Turner, “Functional programming and communicating processes” LNCS 259, 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1994 British Computer Society
About this chapter
Cite this chapter
Holyer, I., Carter, D. (1994). Deterministic Concurrency. In: O’Donnell, J.T., Hammond, K. (eds) Functional Programming, Glasgow 1993. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3236-3_9
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3236-3_9
Publisher Name: Springer, London
Print ISBN: 978-3-540-19879-6
Online ISBN: 978-1-4471-3236-3
eBook Packages: Springer Book Archive