@TECHREPORT{Gulias96concurrentprogramming, author = {Victor M. Gulias and Jose L. Freire}, title = {Concurrent Programming in Haskell}, institution = {}, year = {1996} }
Bookmark
OpenURL
Abstract
In this paper, an extension of the non-strict functional language Haskell [3] is presented. It performs the evaluation of expressions by using multiple threads. The synchronous model and the event interface used are similar to Reppy's CML [11], but in this case we must deal with new factors like non-strictness, embedding the synchronous operations into the IO monad. Lazy structures are useful to model the behaviour of processes, in the same way as Hoare's traces in CSP [5]. A great attention is paid to higher-order concurrent abstractions which simplify programmer's work. A prototype implementation has been developed in Yale Haskell. Keywords: Functional Programming, Concurrency, Higher-Order Functions, Synchronous Communication. 1 Introduction Conventional languages are oriented towards an execution model typically sequential, motivated by the Von Neumann architecture. In this model, a program is viewed as a stream of instructions which must be executed one after another affecting a...