An implementation of Eden on top of concurrent Haskell
The functional concurrent language Eden is an extension of the lazy functional language Haskell by high level constructs for the explicit specification of dynamically evolving process systems. It employs stream-based implicit communication.
In this paper, we describe how Eden can be implemented on top of Concurrent Haskell, another concurrent extension of Haskell. This implementation provides valuable insights into the relationship between the two languages. Furthermore, an outlook on the parallel implementation on a distributed memory system is given.
KeywordsParallel Implementation Output Channel Syntax Tree Functional Language Process Abstraction
Unable to display preview. Download preview PDF.
- [AJ89]Lennart Augustsson and Thomas Johnsson. Parallel Graph Reduction with the 〈v, G〉-machine. In FPCA '89, Functional Programming Languages and Computer Architecture, pages 202–213. ACM Press, 1989.Google Scholar
- [Aßm96]Claus Aßmann. Coordinating Functional Processes using Petri Nets. In Werner Kluge, editor, Workshop on the Implementation of Functional Languages, Bonn, Germany. Christian-Albrechts-University Kiel, September 1996. (also in this volume).Google Scholar
- [Ber95]B. Berthomieu. Process calculi at work — an account of the LCS project. In PSLS, LNCS 1068, Springer, 1995.Google Scholar
- [BLO96]Silvia Breitinger, Rita Loogen, and Yolanda Ortega-Mallén. Towards a declarative language for concurrent and parallel programming. In David N. Turner, editor, Functional Programming, Glasgow 1995. Springer, 1996.Google Scholar
- [BLOP96]Silvia Breitinger, Rita Loogen, Yolanda Ortega-Mallén, and R. Peña. Eden — Language Definition and Operational Semantics. Technical Report 96-10, Philipps-Universität Marburg, 1996.Google Scholar
- [GC92]David Gelernter and Nicolas Carriero. Coordination languages and their significance. Comm. of the ACM, 35(2), 1992.Google Scholar
- [GH96]T. Gehrke and M. Huhn. ProFun — a language for executable specifications. In International Symposium on Programming Languages: Implementations, Logics, Programs (PLILP), LNCS 1140, Springer, 1996.Google Scholar
- [KLB91]H. Kingdon, D. R. Lester, and G. L. Burn. The HDG-machine: a highly distributed graph-reducer for a transputer network. Computer Journal, 34(4):290–301, 1991.Google Scholar
- [LKID89]Rita Loogen, Herbert Kuchen, Klaus Indermark, and Werner Damm. Distributed implementation of programmed graph reduction. In Proc. PARLE, LNCS 365, Springer, 1989.Google Scholar
- [PH96]John Peterson and Kevin Hammond (eds). Report on the programming language Haskell: a non-strict, purely functional language, version 1.3. Technical Report YALEU/DCS/RR-1106, Yale University, 1996.Google Scholar
- [PJGF96]Simon Peyton Jones, Andrew Gordon, and Sigbjorn Finne. Concurrent Haskell. In ACM Symposium on Principles of Programming Languages (POPL) 96. ACM Press, 1996.Google Scholar
- [Rep91]John H. Reppy. CML: A higher-order concurrent language. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 1991.Google Scholar
- [Sah96]D. Sahlin. The concurrent functional programming language Erlang — an overview. In Multi Paradigm Logic Programming, pages 9–12, 1996.Google Scholar
- [THM+96]P. W. Trinder, K. Hammond, J. S. Mattson, Jr., A. S. Partridge, and S. L. Peyton Jones. GUM: A portable parallel implementation of Haskell. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 1996.Google Scholar
- [TLP+93]B. Thomsen, L. Leth, S. Prasad, T.-S. Kuo, A. Kramer, F. Knabe, and A. Giacalone. Facile antigua release — programming guide. Technical Report ECRC-93-20, European Computer-Industry Research Centre, 1993.Google Scholar
- [vEP93]Marco van Eekelen and Rinus Plasmeijer. Functional Programming and Parallel Graph Rewriting. Addison Wesley, 1993.Google Scholar
- [Wik94]Claes Wikström. Distributed programming in Erlang. In Hoon Hong, editor, PASCO'94: First International Symposium on Parallel Symbolic Computation, pages 412–421. World Scientific Publishing Company, 1994.Google Scholar