Academia.eduAcademia.edu

Concurrent Interactive Processes in a Pure Functional Language

Abstract

In this paper we present an operational semantics for concurrent interactive process es in the purely functional programming language Clean. An interactive process is in essence a state transition system which apart from its logical state can also access the state of the file system, do highlevel Graphical User I/O, and do inter-process communication via synchronous and asynchronous message passing and data sharing. Inter-process communication is type-safe and polymorphic. The semantics of the system is based on earlier work on the Interleaved Event I/O system. In this paper we identify limitations of the interleaved model in the context of concurrent processes and propose a new process semantics that does allow a concurrent implementation. The method basically intro duces a Remote Procedure Call communication scheme and demonstrates how to apply this scheme to obtain a concurrent process semantics. The resulting system is the Concur rent Event I/O system . The operational semantics is given in Clean itself. As a result the concurrency system is completely func tional because the construction is done within the pure functional framework.