×

zbMATH — the first resource for mathematics

The design and implementation of Glasgow distributed Haskell. (English) Zbl 0977.68764
Mohnen, Markus (ed.) et al., Implementation of functional languages. 12th international workshop, IFL 2000, Aachen, Germany, September 4-7, 2000. Selected papers. Berlin: Springer. Lect. Notes Comput. Sci. 2011, 53-70 (2001).
This paper presents the design and implementation of Glasgow distributed Haskell (GdH), a non-strict distributed functional language. The language is intended for constructing scalable, reliable distributed applications, and is Haskell’98 compliant, being a superset of both Concurrent Haskell and Glasgow parallel Haskell (GpH).
GdH distributes both pure and impure threads across multiple Processing Elements (PEs), each location is made explicit so a program can use resources unique to PE, and objects including threads can be created on a named PE. The location that uniquely owns a resource is identified by a method of a new Immobile type class. Impure threads communicate and synchronise explicitly to co-ordinate actions on the distributed state, but both pure and impure threads synchronise and communicate implicitly to share data. Limited support for fault tolerant programming is provided by distributed exception handling. The language constructs are illustrated by example, and two demonstration programs give a flavour of GdH programming.
Although many distributed functional languages have been designed, relatively few have robust implementations. The GdH implementation fuses and extends two mature implementation technologies: the GUM runtime system (RTS) of GpH and the RTS for Concurrent Haskell. The fused RTS is extended with a small number of primitives from which more sophisticated constructs can be constructed, and libraries are adapted to the distributed context.
For the entire collection see [Zbl 0977.68824].

MSC:
68U99 Computing methodologies and applications
68N18 Functional programming and lambda calculus
68N15 Theory of programming languages
Software:
GHC; Haskell; OCaml; Oz; Pict
PDF BibTeX XML Cite
Full Text: Link