Skip to main content

Distributed Programming in Haskell with Ports

  • Conference paper
  • First Online:
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

We present an extension of the lazy functional programming language Haskell for distributed programming. For the communication between processes we add a port concept. Ports behave like channels in Concurrent Haskell except that only the process which creates a port can read from it. Ports can also be sent through other ports. The receiver can then also write messages through the received port. This is independent of the location in a network. The programmer uses the same functions to write to local or remote ports. Communication between concurrent and distributed processes is programmed with the same functions. Concurrent processes can easily be distributed, for example to provide scalability of a system. In many distributed applications it is necessary that two independently started programs can connect at runtime. Therefore we provide the registration of ports. Other processes can look them up from anywhere in a network. The implementation consists of a library which provides functions for creating new processes, communication between concurrent and distributed processes, and error handling with exceptions.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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. Thomas Arts and Joe Armstrong. A practical type system for Erlang. Technical report, Erlang User Conference, September 1998.

    Google Scholar 

  2. J. Armstrong, M. Williams, and R. Virding. Concurrent Programming in Erlang. Prentice-Hall, Englewood Cliffs, NJ, 1993.

    Google Scholar 

  3. S. Breitinger, R. Loogen, Y. Ortega-Mallén, and R. Pena-Mari. Edeng-the paradise of functional concurrent programming. LNCS, 1123: 710ff, 1996.

    Google Scholar 

  4. Manuel M.T. Chakravarty, Yike Guo, and Martin Köhler. Distributed Haskell:Goffin on the Internet. In M. Sato and Y. Toyama,editors, Proceedings of the Third Fuji International Symposium on Functional and Logic Programming, pages 80–97. World Scientific Publishers, 1998.

    Google Scholar 

  5. M. Hanus. Distributed programming in a multi-paradigm declarative language. In Proc.of the International Conference on Principles and Practice of Declarative Programming (PPDP’ 99). Springer LNCS (to appear), 1999.

    Google Scholar 

  6. Frank Huch. Erlang-style distributed haskell. In Draft Proceedings of the 11th International Workshop on Implementation of Functional Languages, September 7th-10th 1999.

    Google Scholar 

  7. Simon Peyton Jones et al. Haskell 98 report.Technical report, http://www.haskell.org,1998.

  8. Simon Peyton Jones, Andrew Gordon, and Sigbjorn Finne. Concurrent Haskell. In Conference Record of POPL’ 96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 295–308, St. Petersburg Beach, Florida, 21–24 January 1996.

    Google Scholar 

  9. Simon Marlow and Philip Wadler. A practical subtyping system for Erlang. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, pages 136–149, Amsterdam, The Netherlands, 9-11 June 1997.

    Google Scholar 

  10. R. Pointon, P. Trinder, and H-W. Loidl. The Design and Implementation of Glasgow distributed Haskell. In M. Mohnen and P. Koopman, editors, Proceedings of the 12th International Workshop on Implementation of Functional Languages, number AIB-00-7 in Aachener Informatik Berichte,pages 101–116. RWTH Aachen, 2000.

    Google Scholar 

  11. Philip W. Trinder, Kevin Hammond, James S. Mattson Jr., Andrew S. Partridge, and Simon L. Peyton Jones. GUM:a portable implementation of Haskell. In Proceedings of Programming Language Design and Implementation, Philadephia, USA, May 1996.

    Google Scholar 

  12. Bent Thomsen, Lone Leth, and Tsung-Min Kuo. A Facile tutorial. In Ugo Montanari and Vladimiro Sassone, editors, CONCUR’ 96: Con-currency Theory, 7th International Conference, volume 1119 of Lecture Notes in Computer Science, pages 278–298, Pisa, Italy, 26-29 August 1996. Springer-Verlag.

    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 2001

About this paper

Cite this paper

Huch, F., Norbisrath, U. (2001). Distributed Programming in Haskell with Ports. 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_7

Download citation

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

  • 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