Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11665))

Abstract

Erlang is a functional and concurrent programming language. The aim of this paper is to investigate basic properties of the Erlang concurrency model, which is based on asynchronous communication through mailboxes accessed via pattern matching. To achieve this goal, we consider Core Erlang (which is an intermediate step in Erlang compilation) and we define, on top of its operational semantics, an observational semantics following the approach used to define asynchronous bisimulation for the \(\pi \)-calculus. Our work allows us to shed some light on the management of process identifiers in Erlang, different from the various forms of name mobility already studied in the literature. In fact, we need to modify standard definitions to cope with such specific features of Erlang.

This work has been partially supported by the French National Research Agency (ANR), project DCore n. ANR-18-CE25-0007.

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

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and 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

References

  1. Amadio, R.M., Castellani, I., Sangiorgi, D.: On bisimulations for the asynchronous \(\pi \)-calculus. Theor. Comput. Sci. 195(2), 291–324 (1998)

    Article  MathSciNet  Google Scholar 

  2. Armstrong, J.: A history of Erlang. In: Third ACM SIGPLAN Conference on History of Programming Languages, pp. 6-1–6-26. ACM (2007)

    Google Scholar 

  3. Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice Hall, Upper Saddle River (1996)

    MATH  Google Scholar 

  4. Bergstra, J.A., Klop, J.W.: Process algebra for synchronous communication. Inf. Control 60(1–3), 109–137 (1984)

    Article  MathSciNet  Google Scholar 

  5. de Boer, F.S., Klop, J.W., Palamidessi, C.: Asynchronous communication in process algebra. In: LICS, pp. 137–147. IEEE Computer Society (1992)

    Google Scholar 

  6. Boreale, M., De Nicola, R., Pugliese, R.: Basic observables for processes. Inf. Comput. 149(1), 77–98 (1999)

    Article  MathSciNet  Google Scholar 

  7. Boreale, M., De Nicola, R., Pugliese, R.: A theory of “may” testing for asynchronous languages. In: Thomas, W. (ed.) FoSSaCS 1999. LNCS, vol. 1578, pp. 165–179. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-49019-1_12

    Chapter  Google Scholar 

  8. Boreale, M., De Nicola, R., Pugliese, R.: Trace and testing equivalence on asynchronous processes. Inf. Comput. 172(2), 139–164 (2002)

    Article  MathSciNet  Google Scholar 

  9. Caballero, R., Martin-Martin, E., Riesco, A., Tamarit, S.: Declarative debugging of concurrent Erlang programs. J. Log. Algebr. Meth. Program. 101, 22–41 (2018)

    Article  MathSciNet  Google Scholar 

  10. Carlsson, R., et al.: Core Erlang 1.0.3. language specification (2004). https://www.it.uu.se/research/group/hipe/cerl/doc/core_erlang-1.0.3.pdf

  11. Castellani, I., Hennessy, M.: Testing theories for asynchronous languages. In: Arvind, V., Ramanujam, S. (eds.) FSTTCS 1998. LNCS, vol. 1530, pp. 90–101. Springer, Heidelberg (1998). https://doi.org/10.1007/978-3-540-49382-2_9

    Chapter  Google Scholar 

  12. De Nicola, R., Ferrari, G.L., Pugliese, R.: KLAIM: a kernel language for agents interaction and mobility. IEEE Trans. Softw. Eng. 24(5), 315–330 (1998)

    Article  Google Scholar 

  13. De Nicola, R., Hennessy, M.: Testing equivalences for processes. Theor. Comput. Sci. 34, 83–133 (1984)

    Article  MathSciNet  Google Scholar 

  14. Demangeon, R., Hirschkoff, D., Sangiorgi, D.: Termination in impure concurrent languages. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 328–342. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15375-4_23

    Chapter  Google Scholar 

  15. Fredlund, L.A.: A framework for reasoning about Erlang code. Ph.D. thesis, Royal Institute of Technology, Stockholm, Sweden (2001)

    Google Scholar 

  16. Fredlund, L., Earle, C.B.: Model checking Erlang programs: the functional approach. In: ACM SIGPLAN Workshop on Erlang, pp. 11–19. ACM (2006)

    Google Scholar 

  17. Fredlund, L., Gurov, D., Noll, T., Dam, M., Arts, T., Chugunov, G.: A verification tool for Erlang. STTT 4(4), 405–420 (2003)

    Article  Google Scholar 

  18. Kobayashi, N.: A partially deadlock-free typed process calculus. Trans. Program. Lang. Syst. 20(2), 436–482 (1998)

    Article  Google Scholar 

  19. Kobayashi, N., Sangiorgi, D.: A hybrid type system for lock-freedom of mobile processes. ACM Trans. Program. Lang. Syst. 32(5), 16 (2010)

    Article  Google Scholar 

  20. Lanese, I., Nishida, N., Palacios, A., Vidal, G.: CauDEr: a causal-consistent reversible debugger for Erlang. In: Gallagher, J.P., Sulzmann, M. (eds.) FLOPS 2018. LNCS, vol. 10818, pp. 247–263. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-90686-7_16

    Chapter  Google Scholar 

  21. Lanese, I., Nishida, N., Palacios, A., Vidal, G.: A theory of reversibility for Erlang. J. Log. Algebr. Meth. Program. 100, 71–97 (2018)

    Article  MathSciNet  Google Scholar 

  22. Letuchy, E.: Erlang at Facebook (2009). http://www.erlang-factory.com/conference/SFBayAreaErlangFactory2009/speakers/EugeneLetuchy

  23. Merro, M., Sangiorgi, D.: On asynchrony in name-passing calculi. Math. Struct. Comput. Sci. 14(5), 715–767 (2004)

    Article  MathSciNet  Google Scholar 

  24. Milner, R., Sangiorgi, D.: Barbed bisimulation. In: Kuich, W. (ed.) ICALP 1992. LNCS, vol. 623, pp. 685–695. Springer, Heidelberg (1992). https://doi.org/10.1007/3-540-55719-9_114

    Chapter  Google Scholar 

  25. Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle River (1989)

    MATH  Google Scholar 

  26. Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes. I. Inf. Comput. 100(1), 1–40 (1992)

    Article  MathSciNet  Google Scholar 

  27. Nishida, N., Palacios, A., Vidal, G.: A reversible semantics for Erlang. In: Hermenegildo, M.V., Lopez-Garcia, P. (eds.) LOPSTR 2016. LNCS, vol. 10184, pp. 259–274. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-63139-4_15

    Chapter  Google Scholar 

  28. Sangiorgi, D., Milner, R.: The problem of “weak bisimulation up to”. In: Cleaveland, W.R. (ed.) CONCUR 1992. LNCS, vol. 630, pp. 32–46. Springer, Heidelberg (1992). https://doi.org/10.1007/BFb0084781

    Chapter  Google Scholar 

  29. Svensson, H., Fredlund, L.A.: A more accurate semantics for distributed Erlang. In: SIGPLAN Workshop on Erlang, pp. 43–54. ACM (2007)

    Google Scholar 

  30. Svensson, H., Fredlund, L.A., Benac Earle, C.: A unified semantics for future Erlang. In: ACM SIGPLAN Workshop on Erlang, pp. 23–32. ACM (2010)

    Google Scholar 

  31. Tóth, M., Bozó, I.: Static analysis of complex software systems implemented in Erlang. In: Zsók, V., Horváth, Z., Plasmeijer, R. (eds.) CEFP 2011. LNCS, vol. 7241, pp. 440–498. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-32096-5_9

    Chapter  Google Scholar 

  32. Yoshida, N., Berger, M., Honda, K.: Strong normalisation in the \(\pi \)-calculus. Inf. Comput. 191(2), 145–202 (2004)

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gianluigi Zavattaro .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Lanese, I., Sangiorgi, D., Zavattaro, G. (2019). Playing with Bisimulation in Erlang. In: Boreale, M., Corradini, F., Loreti, M., Pugliese, R. (eds) Models, Languages, and Tools for Concurrent and Distributed Programming. Lecture Notes in Computer Science(), vol 11665. Springer, Cham. https://doi.org/10.1007/978-3-030-21485-2_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-21485-2_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-21484-5

  • Online ISBN: 978-3-030-21485-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics