Higher-order distributed objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
GUM: a portable parallel implementation of Haskell
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
COBRA fundamentals and programming
COBRA fundamentals and programming
An overview of the design of Distributed Oz
PASCO '97 Proceedings of the second international symposium on Parallel symbolic computation
Java 1.2 & Javascript for C/C++ Programmers
Java 1.2 & Javascript for C/C++ Programmers
Runtime system level fault tolerance for a distributed functional language
Selected papers from the 2nd Scottish Functional Programming Workshop (SFP00)
Distributed Programming in Haskell with Ports
IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
Algorithm + strategy = parallelism
Journal of Functional Programming
Distributed Programming in Haskell with Ports
IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
An Introduction to iTasks: Defining Interactive Work Flows for the Web
Central European Functional Programming School
CIEL: a universal execution engine for distributed data-flow computing
Proceedings of the 8th USENIX conference on Networked systems design and implementation
Proceedings of the 4th ACM symposium on Haskell
Improving performance of distributed haskell in mosix clusters
ICCS'05 Proceedings of the 5th international conference on Computational Science - Volume Part III
OpenTS: an outline of dynamic parallelization approach
PaCT'05 Proceedings of the 8th international conference on Parallel Computing Technologies
Are high-level languages suitable for robust telecoms software?
SAFECOMP'05 Proceedings of the 24th international conference on Computer Safety, Reliability, and Security
Palovca: describing and executing graph algorithms in haskell
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Functory: a distributed computing library for objective caml
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Variable reassignment in the T++ parallel programming language
PaCT'07 Proceedings of the 9th international conference on Parallel Computing Technologies
Implementing a high-level distributed-memory parallel haskell in haskell
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
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 RTSis extended with a small number of primitives from which more sophisticated constructs can be constructed, and libraries are adapted to the distributed context.