PARLE Parallel Architectures and Languages Europe

Volume 259 of the series Lecture Notes in Computer Science pp 54-74


Functional programming and communicating processes

Some design considerations for a functional operating system
  • David TurnerAffiliated withComputing Laboratory, University of Kent

* Final gross prices may vary according to local VAT.

Get Access


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.