Article

Functional programming and operating systems

Details

Citation

Jones S & Sinclair A (1989) Functional programming and operating systems. Computer Journal, 32 (2), pp. 162-174. https://doi.org/10.1093/comjnl/32.2.162

Abstract
There is a large class of programming problems to which, at first sight, functional programming does not seem suited: interactive programs and programs which must access external resources such as file stores or communications systems. We take operating systems as the archetype of this class of problems. We show how the lazy evaluation of functional programs, in particular lazily evaluated infinite lists, or streams, can be exploited to write interactive programs. This extends quite naturally to a software design paradigm comprising processes and networks, to the control of peripheral devices, and hence to the design of operating systems. We present a design for a simple, single user, multiprogramming operating system. This demonstrates workable solutions to operating system structuring, to low level device interfacing, to high level application program interfacing, and to resource management. We examine the paradigm illustrated, with reference to alternative approaches which have been proposed.

Journal
Computer Journal: Volume 32, Issue 2

StatusPublished
Publication date30/04/1989
PublisherOxford University Press
ISSN0010-4620