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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Thomas Arts and Joe Armstrong. A practical type system for Erlang. Technical report, Erlang User Conference, September 1998.
J. Armstrong, M. Williams, and R. Virding. Concurrent Programming in Erlang. Prentice-Hall, Englewood Cliffs, NJ, 1993.
S. Breitinger, R. Loogen, Y. Ortega-Mallén, and R. Pena-Mari. Edeng-the paradise of functional concurrent programming. LNCS, 1123: 710ff, 1996.
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.
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.
Frank Huch. Erlang-style distributed haskell. In Draft Proceedings of the 11th International Workshop on Implementation of Functional Languages, September 7th-10th 1999.
Simon Peyton Jones et al. Haskell 98 report.Technical report, http://www.haskell.org,1998.
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.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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