Glasgow Distributed Haskell (GdH)

  1. Motivation
  2. Language Outline
  3. Activity reports
  4. Grants
  5. People
  6. Papers
  7. Installing GdH
  8. Using GdH
Last updated: August 2011
Haskell | GHC | GpH | GranSim


The number of computers in our society is increasing exponentially, and wireless/wired network technologies are vastly increasing connectivity. Constructing distributed software for these systems has focussed research interest on distributed and mobile programming languages. Compared to conventional distributed languages, functional languages offer a more dynamic programming model: tasks and data may be placed dynamically, and processes and channels generated dynamically. At the cost of additional messages, lazy functional languages support the dynamic and lazy communication between processes.

To investigate the potential of functional distribution this recently completed project (final report) designed and implemented a lazy functional language with a dynamic distributed programming model, Glasgow distributed Haskell (GdH). The suitability of GdH for real small-scale distributed applications has been evaluated using several programs including a simulation control chatroom and a shared multiuser map, and making direct comparisons with Java and other distributed functional languages.

Language Outline

GdH combines the multiple processes of Concurrent Haskell with the multiple processing elements of Glasgow Parallel Haskell (GpH). In summary the language is a minimal super-set of GpH and Concurrent Haskell and so maintains full backwards compatibility while providing a hierachy of threads: explicitly placed I/O threads making use of the individual resources of each machine, and then the implicit pure threads for parallelism.

Activity reports


High-Level Technique for Distributed Telecommunications Software
The project aims to evaluate distributed functional programming techniques for realistic telecommunications applications.
ESPRC GR/R 88137
Functional Distributed Interactive Systems
The primary aim of the project is to study the suitability of distributed lazy functional langauges for constructing real applications with small-scale distribution.
ESPRC GR/M 55633, Aug'99-Mar'01.
Evaluating Functional Distribution
Evaluating two non-strict distributed functional languages, namely Eden, and GdH. People: Rita Loogen, Kevin Hammond.
4-year British Council/DAAD funded travel grant (Project No. 1097), with partners at Phillips-Universitaet Marburg, and St Andrews University.
Performance Evaluation of Parallel Functional Programs for Multiprocessor Computer Systems
The project aims to evaluate the performance of the Eden and GpH parallel functional programming languages, and to construct frameworks for reasoning about them. People: Ricardo Pena, Yolanda Ortega-Mallen, Kevin Hammond.
4-year British Council/Acciones Integradas travel grant (No. MDR 8472).


People currently working in this area are:
Phil Trinder,, Lecturer.
Jan Henry Nystrom E-mail Associate.
Robert Pointon,, Research Associate.
Hans Wolfgang Loidl,, Research Fellow.


Papers related to GdH include:
Benchmarking a New Parallel Language Implementation
Malcolm Watt
MSc Thesis Heriot Watt University (August 2011).

Evaluating High-Level Distributed Language Constructs
Nyström J.H. Trinder P.W. King D.J.
ACM International Conference on Functional Programming (ICFP), Freiburg, Germany (October 2007).

Parallel Skeletons In Glasgow Distributed Haskell
Yong Lu, Master of Science in Conputer Science Thesis, Department of Computer Science, School of Mathematical and Computer Sciences, Heriot Watt University, Edinburgh, Scotland, 2003.
Coverpage Content

Functional Distributed Interactive Systems
P.W. Trinder, R.F. Pointon, H-W. Loidl, Project final report, July 2001.

Functional vs Object-Oriented Distributed Languages
R.F. Pointon, S. Priebe, H-W. Loidl, R.Loogen, and P.W. Trinder, Eurocast'01, International Conference on Computer Aided Systems Theory, Canary Islands, Spain, February 2001.
In Preparation.

The Design and Implementation of Glasgow Distributed Haskell
R.F. Pointon, P.W. Trinder, and H-W. Loidl, IFL'00, Implementation of Functional Languages, Aachen, Germany, September 2000.
Draft proceedings.

The Design and Implementation of GdH
R.F. Pointon, P.W. Trinder, and H-W. Loidl, SFP'00, Scottish Functional Programming Workshop, St Andrews, Scotland, July 2000.
Draft proceedings only.

Runtime System Level Fault Tolerance for a Distributed Functional Language
H-W. Loidl, P.W. Trinder, and R.F. Pointon, SFP'00, Scottish Functional Programming Workshop, St Andrews, Scotland, July 2000.
Draft proceedings.

Review of GdH: August 1999 - February 2000
R.F. Pointon, Internal report, February 2000.

Motivation for Glasgow distributed Haskell, a non-strict Functional Language
P.W. Trinder, PDSIA'99, Parallel and Distributed Computing for Symbolic and Irregular Applications, Sendai, Japan, July 1999.
From Proceedings.

Installing GdH



  1. In "" define: "GhcLibWays= md"
  2. make
  3. Unpack the GdH headers into a seperate directory and try to compile. (It doesn't yet!)
  4. Contact the authors -- we haven't finished checking that install works! (Robert Pointon 13th July 2001)

Linux Binary Snapshot of GdH

GdH 25Feb2002 Binaries: "gdh.tar.gz" (18Mb)

Using GdH

A gentle introduction with test programs... (Soon!)