Lazy functional programs in a concurrent environment

Research output: Contribution to journalArticleAcademicpeer-review


The mechanism of Landin-style stream input/output (I/O) makes it possible to write functional programs, which behave as reactive systems when executed with lazy evaluation. Functional programming languages like Gofer are attractive for programming the data transformations of a reactive system. But although the I/O behaviour can be programmed in such languages too, the functional paradigm lacks the capabilities for specification and reasoning which are needed to analyse the communication behaviour of the program and its environment. We propose to use the Algebra of Communicating Processes (ACPet) for that purpose. The present paper attempts to bridge the gap between the functional and the process-oriented worlds. The term rewriting system of the functional language, the operational semantics of the I/O mechanism and the process equations of a program are described and their relationships are analysed. We abstract from the details of the particular programming language by using an intermediate concept of ‘abstract functional program’.
Original languageEnglish
Pages (from-to)572-584
Number of pages13
JournalThe Computer Journal
Issue number9
Publication statusPublished - 1997


Dive into the research topics of 'Lazy functional programs in a concurrent environment'. Together they form a unique fingerprint.

Cite this