Abstract
Erlang is an industrially successful functional language that uses the Actor model for concurrency. It supports the message-passing paradigm by providing pattern-matching over received messages. Unfortunately coding synchronisation between multiple processes is not straightforward. To overcome this limitation we designed and implemented JErlang, a Join-Calculus inspired extension to Erlang. We provide a rich set of language features with our joins. We present implementation details of our two alternative solutions, a library and an altered VM. Our optimisations provide JErlang with good performance.
Chapter PDF
References
Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (July 2007)
Gonthier, G., Rocquencourt, I.: The reflexive CHAM and the Join-Calculus. In: Proceedings of the 23rd ACM Symposium on Principles of Programming Languages, pp. 372–385. ACM Press, New York (1996)
Mandel, L., Maranget, L.: JoCaml Documentation and Manual (Release 3.11). INRA (2008)
Benton, N., Cardelli, L., Polyphonic, C.: Modern Concurrency Abstractions for C#. ACM Trans. Program. Lang. Syst., 415–440 (2002)
Haller, P., Van Cutsem, T.: Implementing Joins using Extensible Pattern Matching. In: Lea, D., Zavattaro, G. (eds.) COORDINATION 2008. LNCS, vol. 5052, pp. 135–152. Springer, Heidelberg (2008)
Sulzmann, M., Lam, E.S.L., Weert, P.V.: Actors with multi-headed message receive patterns. In: Lea, D., Zavattaro, G. (eds.) COORDINATION 2008. LNCS, vol. 5052, pp. 315–330. Springer, Heidelberg (2008)
Sulzmann, M., Lam, E.S.: Haskell - join - rules. In: Chitil, O., Horváth, Z., Zsók, V. (eds.) IFL 2007. LNCS, vol. 5083, pp. 195–210. Springer, Heidelberg (2008)
Lam, E.S., Sulzmann, M.: Parallel join patterns with guards and propagation (2009)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, New York (1999)
Maranget, L., Fessant, F.L.: Compiling join-patterns. Electronic Notes in Computer Science. Elsevier Science Publishers, Amsterdam (1998)
Forgy, C.: RETE: a fast algorithm for the many pattern/many object pattern match problem. Artificial Intelligence 19, 17–37 (1982)
Trono, J.A.: A new exercise in concurrency. SIGCSE Bull. 26(3), 8–10 (1994)
Lam, E., Sulzmann, M.: Finally, a comparison between Constraint Handling Rules and Join-Calculus. In: Fifth Workshop on Constraint Handling Rules, CHR 2008 (2008)
Sulzmann, M., Lam, E.S.: Compiling Constraint Handling Rules with lazy and concurrent search techniques. In: CHR 2007, pp. 139–149 (2007)
Eugster, P., Jayaram, K.R.: Eventjava: An extension of java for event correlation. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 570–594. Springer, Heidelberg (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Plociniczak, H., Eisenbach, S. (2010). JErlang: Erlang with Joins. In: Clarke, D., Agha, G. (eds) Coordination Models and Languages. COORDINATION 2010. Lecture Notes in Computer Science, vol 6116. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13414-2_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-13414-2_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13413-5
Online ISBN: 978-3-642-13414-2
eBook Packages: Computer ScienceComputer Science (R0)