Turning a functional data type into a concurrent programming language

Enno Scholz · 1995

There is a recurrent dilemma in the design of concurrent programming languages.On the one hand the language should be small and coherent, and on the other, all communication constructs needed by the programmer should be provided.We present an approach for remedying this dilemma in the functional programming framework.It consists of building into the language only a few simple primitives which are represented by constructors of a distinguished algebraic data type.This way, a two-layer process language containing a pure functional core is created for which referential transparency is guaranteed by construction.Because these constructors are first-class decomposable objects of the language, they serve as building blocks from which the programmer can construct advanced communication constructs within the language in a purely functional way.The paper argues that functional data terms containing Perry-style continuations [Perry 901 are sufficiently expressive to denote processes.These claims are supported by applying the proposed method to build an example language for which a number of desirable qualities are demonstrated.

Read the paper · More papers on PaperTik