Skip to main content

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F.W. Burton, “Nondeterminism with referential transparency in functional programming”, Proc. 1st international Lisp conference, 1980.

    Google Scholar 

  2. M. Carlsson & T. Hallgren, “Fudgets: a graphical user interface in a lazy functional language”, submitted to FPCA, 1993.

    Google Scholar 

  3. W. Clinger, “Nondeterministic call by need is neither lazy nor by name”, Proc. Symposium on LISP and Functional Programming, 1982.

    Google Scholar 

  4. P. Hudak et. al., “Report on the programming language Haskell”, ACM SIGPLAN Notices Volume 27 Number 5, 1992

    Google Scholar 

  5. 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

    Google Scholar 

  6. 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

    Google Scholar 

  7. 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

    Google Scholar 

  8. P. Henderson, “Purely functional operating systems”, in J. Darlington, P. Henderson, D.A. Turner (editors) “Functional Programming and its Applications”, Cambridge University Press, 1982.

    Google Scholar 

  9. J. Hughes & J. O’Donnell, “Nondeterministic Functional Programming with Sets”, Proceedings of the 1990 Banf Conference on Higher Order Reasoning, 1990.

    Google Scholar 

  10. The MIT X Window System Manual Set (Volumes 1 and 2), IXI Ltd.

    Google Scholar 

  11. W. Stoye, “A new scheme for writing functional operating systems”, Technical report 56, Cambridge University Computer Laboratory, 1984.

    Google Scholar 

  12. D. Turner, “Functional programming and communicating processes” LNCS 259, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics