Skip to main content

The Design and Implementation of Glasgow Distributed Haskell

  • Conference paper
  • First Online:
Book cover Implementation of Functional Languages (IFL 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2011))

Included in the following conference series:

Abstract

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.

Supported by research grant GR/M 55633 from UK’s EPSRC and APART fellowship 624 from the Austrian Academy of Sciences.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Chakravarty, Y. Guo, and M. Köhler. Distributed Haskell: Goffin on the Internet. In Third Fuji International Symposium on Functional and Logic Programming, pages 80–97, 1998.

    Google Scholar 

  2. H. Cejtin, S. Jagganathan, and R. Kelsey. Higher-order distributed objects. ACM Trans. On Programming Languages and Systems (TOPLAS), 17(1), September 1995.

    Google Scholar 

  3. M.C. Daconta, A. Saganich, E. Monk, and M. Snyder. Java 1.2 and JavaScript for Cand C++ Programmers. John Wiley & Sons, New York, 1998.

    Google Scholar 

  4. F. Huch and U. Norbisrath. Distributed Programming in Haskell with Ports. In 12th International Workshop on Implementation of Functional Languages (IFL’00), Aachen, Germany, September 2000.

    Google Scholar 

  5. S. Haridi, P. Van Roy, and G. Smolka. An Overview of the Design of Distributed Oz. In 2nd Intl. Symposium on Parallel Symbolic Computation (PASCO 97), New York, USA, 1997.

    Google Scholar 

  6. P. Kiteck. Analysis of Component Interaction in a Distribution Facility using Simulation. In EUROSIM, 1992.

    Google Scholar 

  7. R. Loogen. Programming Language Constructs. In K. Hammond and G. Michaelson, editors, Research Directions in Parallel Functional Programming, pages 63–91. Springer, 1999.

    Google Scholar 

  8. L. Merrick. DCOM Technical Overview. Technical report, Microsoft White Paper, 1996.

    Google Scholar 

  9. J. Peterson, K. Hammond, L. Augustsson, B. Boutel, W. Burton, J. Fasel, A.D. Gordon, J. Hughes, P. Hudak, T. Johnsson, M. Jones, E. Meijer, S. Peyton Jones, A. Reid, and P. Wadler. Report on the Programming Language Haskell (Version 1.4), April 1997.

    Google Scholar 

  10. S. Peyton Jones, C. Hall, K. Hammond, W. Partain, and P. Wadler. The Glasgow Haskell Compiler: a technical overview. In The UK Joint Framework for Information Technology, pages 249–257, Keele, 1993.

    Google Scholar 

  11. R. Pointon. The Design, Implementation, and Use of a Distributed Functional Language. PhD thesis, Department of Computing and Electrical Engineering, Heriot-Watt University, 2001. In Preparation.

    Google Scholar 

  12. B. Pierce and D. Turner. Pict: A Programming Language Based on the Pi-Calculus. Technical report, Indiana University, 1997.

    Google Scholar 

  13. R. Plasmeijer and M. Van Eekelen. Concurrent Clean-Language Report. High Level Software Tools B.V. and University of Nijmegen, version 1.3 edition, 1998.

    Google Scholar 

  14. M. Sage and C. Dornan. TclHaskell-users manual, Aug 1999.

    Google Scholar 

  15. J. Siegel. CORBA Fundamentals and Programming. John Wiley and Sons, New York, 1997.

    Google Scholar 

  16. E. Spiliopoulou. Concurrent and Distributed Functional Systems. PhD thesis, Department of Computer Science, University of Bristol, 1999.

    Google Scholar 

  17. P. Trinder, K. Hammond, H.-W. Loidl, and S. Peyton Jones. Algorithm + Strategy = Parallelism. Journal of Functional Programming, 8(1):23–60, January 1998.

    Article  MATH  MathSciNet  Google Scholar 

  18. P. Trinder, K. Hammond, J. Mattson, A. Partridge, and S. Peyton Jones. GUM: A portable implementation of Haskell. In Proceedings of Programming Language Design and Implementation (PLDI’96), Philadelphia, USA, May 1996.

    Google Scholar 

  19. B. Thomsen, L. Leth, S. Prasad, T-M. Kuo, A. Krammer, F. Knabe, and A. Giacalone. Facile Antigua Release Programming Guide. Technical report, European Computer-Industry Centre, Germany, 1993.

    Google Scholar 

  20. P. Trinder, R. Pointon, and H.-W. Loidl. Runtime System Level Fault Tolerance for a Distributed Functional Language. In 2nd Scotish Function Programming Workshop (SFP’00), University of St Andrews, Scotland, July 2000.

    Google Scholar 

  21. C. Wikstrom. Distributed programming in Erlang. In 1st International Symposium on Parallel Symbolic Computation (PASCO’94), Linz, September 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pointon, R., Trinder, P., Loidl, HW. (2001). The Design and Implementation of Glasgow Distributed Haskell. In: Mohnen, M., Koopman, P. (eds) Implementation of Functional Languages. IFL 2000. Lecture Notes in Computer Science, vol 2011. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45361-X_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-45361-X_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41919-8

  • Online ISBN: 978-3-540-45361-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics