Functional programming and communicating processes

Some design considerations for a functional operating system
  • David Turner
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 259)


Taking the requirements of the Kent operating system project as background, we have sketched a history of some of the methods by which people have sought to represent communicating processes in a functional programming language. It seems to us that the scheme of William Stoye is the first that permits the description of non deterministic behaviour without violating the requirements of referential transparency. We have described our own modifications to the Stoye scheme, permitting static type security in messages, synchronous communication, and separately garbage collected heap spaces.

Whether this scheme is sound as it stands or will require some further modifications in practice, we hope to find out by attempting to use it to build a real system.

From a theoretical point of view an important challenge is to show that equational reasoning can be applied to scripts involving ‘fork’ in a way that allows useful inferences about the behaviour of the processes.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. S. Abramsky, R. Sykes "SECD-M: a Virtual Machine for Applicative Programming" in proceedings IFIP international conference on functional programming languages and computer architecture, Nancy, France, September 1985. (Springer LNCS vol 201.)Google Scholar
  2. R. J. Duncan "Using the Miranda Screen Editor MEDIT" University of Kent Computing Laboratory, 1986.Google Scholar
  3. D. P. Friedman, D. S. Wise "Applicative Multiprogramming", Indiana University Computer Science Department, Technical Report 72, January 1978.Google Scholar
  4. P. Henderson "Purely Functional Operating Systems" in Functional Programming and its Applications, eds Darlington, Henderson and Turner, CUP 1982.Google Scholar
  5. C. A. R. Hoare "Communicating Sequential Processes" Prentice Hall International 1985.Google Scholar
  6. S. B. Jones "Abstract Machine Support for Purely Functional Operating Systems", Oxford University Programming Research Group Technical Monograph 34, August 1983.Google Scholar
  7. G. Kahn, D. McQueen "Coroutines and Networks of Parallel Processes" in IFIP 77, North Holland.Google Scholar
  8. R. Milner "A Calculus of Communicating Systems" LNCS 92, Springer-Verlag 1980.Google Scholar
  9. R. Milner "The Standard ML Core Language", University of Edinburgh Department of Computer Science, October 1984.Google Scholar
  10. S. Peyton-Jones "The Implementation of Functional Programming Languages", Prentice Hall International, March 1987.Google Scholar
  11. W. Stoye "A New Scheme For Writing Functional Operating Systems", Cambridge University Compter Laboratory Technical Report 56, 1984.Google Scholar
  12. W. Stoye "The Implementation of Functional Languages using Custom Harware" Ph D Thesis, Cambridge University Computer Laboratory, December 1985.Google Scholar
  13. D. A. Turner "SASL Language Manual", St Andrews University Department of Computational Science, December 1976.Google Scholar
  14. D. A. Turner "Miranda: A non-strict functional language with polymorphic types" in proceedings IFIP international conference on functional programming languages and computer architecture, Nancy, France, September 1985. (Springer LNCS vol 201)Google Scholar
  15. D. A. Turner "An Overview of Miranda" SIGPLAN Notices, December 1986.Google Scholar

Copyright information

© Springer-Verlag 1987

Authors and Affiliations

  • David Turner
    • 1
  1. 1.Computing LaboratoryUniversity of KentCanterburyUnited Kingdom

Personalised recommendations