Session Typing for a Featherweight Erlang

  • Dimitris Mostrous
  • Vasco T. Vasconcelos
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6721)


As software tends to be increasingly concurrent, the paradigm ofmessage passing is becoming more prominent in computing. The language Erlang offers an intuitive and industry-testedimplementation of process-oriented programming, combining pattern-matching with message mailboxes, resulting in concise, elegant programs. However, it lacks a successful static verification mechanism that ensures safety and determinism of communications with respect to well-defined specifications. We present a session typing system for a featherweight Erlang calculus that encompasses the main communication abilities of the language. In this system, structured types are used to govern the interaction of Erlang processes, ensuring that their behaviour is safe with respect to a defined protocol. The expected properties of subject reduction and type safety are established.


Type System Request Message Business Process Execution Language Open Session Session Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Amadio, R.M., Boudol, G., Lhoussaine, C.: On message deliverability and non-uniform receptivity. Fundam. Inf. 53, 105–129 (2002)zbMATHMathSciNetGoogle Scholar
  2. 2.
    Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  3. 3.
    Business process execution language for web services,
  4. 4.
    Carlsson, R.: An introduction to Core Erlang. In: PLI 2001 Erlang Workshop (2001)Google Scholar
  5. 5.
    Christakis, M., Sagonas, K.: Detection of asynchronous message passing errors using static analysis. In: Rocha, R., Launchbury, J. (eds.) PADL 2011. LNCS, vol. 6539, pp. 5–18. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  6. 6.
    Gay, S.J., Hole, M.J.: Subtyping for session types in the pi calculus. Acta Informatica 42(2/3), 191–225 (2005)CrossRefzbMATHMathSciNetGoogle Scholar
  7. 7.
    Honda, K., Vasconcelos, V.T., Kubo, M.: Language primitives and type discipline for structured communication-based programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998), CrossRefGoogle Scholar
  8. 8.
    Hu, R., Yoshida, N., Honda, K.: Session-based distributed programming in java. In: Ryan, M. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 516–541. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  9. 9.
    Lindahl, T., Sagonas, K.: Practical type inference based on success typings. In: 8th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, PPDP 2006, pp. 167–178. ACM, New York (2006)Google Scholar
  10. 10.
    Viroli, M.: Towards a formal foundation to orchestration languages. Electronic Notes in Theoretical Computer Science 105, 51–71 (2004); Proceedings of the First International Workshop on Web Services and Formal Methods (WSFM 2004)CrossRefzbMATHGoogle Scholar
  11. 11.
    Walker, D.: Substructural Type Systems. In: Advanced Topics in Types and Programming Languages. MIT Press, Cambridge (2005)Google Scholar
  12. 12.
    Yoshida, N., Vasconcelos, V.T.: Language primitives and type discipline for structured communication-based programming revisited: Two systems for higher-order session communication. In: 1st International Workshop on Security and Rewriting Techniques. ENTCS, vol. 171(4), pp. 73–93. Elsevier, Amsterdam (2007)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2011

Authors and Affiliations

  • Dimitris Mostrous
    • 1
  • Vasco T. Vasconcelos
    • 1
  1. 1.LaSIGE, Faculty of SciencesUniversity of LisbonPortugal

Personalised recommendations