Concurrent Objects and Beyond pp 105-127

Part of the Lecture Notes in Computer Science book series (LNCS, volume 8665) | Cite as

Structuring Communication with Session Types

  • Kohei Honda
  • Raymond Hu
  • Rumyana Neykova
  • Tzu-Chun Chen
  • Romain Demangeon
  • Pierre-Malo Deniélou
  • Nobuko Yoshida


Session types are types for distributed communicating processes. They were born from process encodings of data structures and typical interaction scenarios in an asynchronous version of the π-calculus, and are being studied and developed as a potential basis for structuring concurrent and distributed computing, as well as in their own right. In this paper, we introduce basic ideas of sessions and session types, outline their key technical elements, and discuss how they may be usable for programming, drawing from our experience and comparing with existing paradigms, especially concurrent objects such as actors. We discuss how session types can offer a programming framework in which communications are structured both in program text and at run-time.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge (1986)Google Scholar
  2. 2.
    Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)Google Scholar
  3. 3.
    Bergstra, J.A., Klop, J.W.: Algebra of communicating processes. Theoretical Computer Science 37, 77–121 (1985)MathSciNetCrossRefMATHGoogle Scholar
  4. 4.
    Bettini, L., Coppo, M., D’Antoni, L., De Luca, M., Dezani-Ciancaglini, M., Yoshida, N.: Global progress in dynamically interleaved multiparty sessions. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 418–433. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Boudol, G.: Asynchrony and the pi-calculus. Technical Report 1702, INRIA (1992)Google Scholar
  6. 6.
    Capecchi, S., Giachino, E., Yoshida, N.: Global escape in multiparty sessions. In: FSTTCS. LIPIcs, vol. 8, pp. 338–351 (2010)Google Scholar
  7. 7.
    Cerf, V.G., Khan, R.E.: A protocol for packet network intercommunication. IEEE Transactions on Communications 22, 637–648 (1974)CrossRefGoogle Scholar
  8. 8.
    Chen, T.-C., Bocchi, L., Deniélou, P.-M., Honda, K., Yoshida, N.: Asynchronous distributed monitoring for multiparty session enforcement. In: Bruni, R., Sassone, V. (eds.) TGC 2011. LNCS, vol. 7173, pp. 25–45. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  9. 9.
    Demangeon, R., Honda, K.: Nested protocols in session types. In: Koutny, M., Ulidowski, I. (eds.) CONCUR 2012. LNCS, vol. 7454, pp. 272–286. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  10. 10.
    Deniélou, P.-M., Yoshida, N.: Multiparty session types meet communicating automata. In: Seidl, H. (ed.) Programming Languages and Systems. LNCS, vol. 7211, pp. 194–213. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  11. 11.
    Desai, N., Chopra, A.K., Arrott, M., Specht, B., Singh, M.P.: Engineering foreign exchange processes via commitment protocols. In: IEEE SCC 2007, Los Alamitos, CA, USA, pp. 514–521. IEEE Computer Society (2007)Google Scholar
  12. 12.
    Dezani-Ciancaglini, M., de’Liguoro, U.: Sessions and Session Types: An Overview. In: Laneve, C., Su, J. (eds.) WS-FM 2009. LNCS, vol. 6194, pp. 1–28. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  13. 13.
    Dijkstra, E.W.: Letters to the editor: go to statement considered harmful. Commun. ACM 11(3), 147–148 (1968)CrossRefGoogle Scholar
  14. 14.
    Dinges, P., Agha, G.: Scoped synchronization constraints for large scale actor systems. In: Sirjani, M. (ed.) COORDINATION 2012. LNCS, vol. 7274, pp. 89–103. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  15. 15.
    Hewitt, C.: Viewing control structures as patterns of passing messages. Artif. Intell. 8(3), 323–364 (1977)CrossRefGoogle Scholar
  16. 16.
    Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)CrossRefMATHGoogle Scholar
  17. 17.
    Honda, K., Mukhamedov, A., Brown, G., Chen, T.-C., Yoshida, N.: Scribbling interactions with a formal foundation. In: Natarajan, R., Ojo, A. (eds.) ICDCIT 2011. LNCS, vol. 6536, pp. 55–75. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  18. 18.
    Honda, K., Tokoro, M.: An object calculus for asynchronous communication. In: America, P. (ed.) ECOOP 1991. LNCS, vol. 512, pp. 133–147. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  19. 19.
    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
  20. 20.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty Asynchronous Session Types. In: POPL 2008, pp. 273–284. ACM (2008)Google Scholar
  21. 21.
    Milner, R.: A Calculus of Communication Systems. LNCS, vol. 92. Springer, Heidelberg (1980)CrossRefMATHGoogle Scholar
  22. 22.
    Milner, R.: Functions as processes. MSCS 2(2), 119–141 (1992)MathSciNetMATHGoogle Scholar
  23. 23.
    Milner, R., Parrow, J., Walker, D.: A Calculus of Mobile Processes, Parts I and II. Info.& Comp. 100(1) (1992)Google Scholar
  24. 24.
  25. 25.
    Pierce, B., Sangiorgi, D.: Behavioral equivalence in the polymorphic pi-calculus. Journal of ACM 47(3), 531–584 (2000)MathSciNetCrossRefMATHGoogle Scholar
  26. 26.
    Saltzer, J., Reed, D., Clark, D.: End-to-end arguments in system design. ACM Transactions in Computer Systems 2(4), 277–288 (1984)CrossRefGoogle Scholar
  27. 27.
    Scribble development tool site,
  28. 28.
    Scribble github project,
  29. 29.
    Takeuchi, K., Honda, K., Kubo, M.: An Interaction-based Language and its Typing System. In: Halatsis, C., Philokyprou, G., Maritsas, D., Theodoridis, S. (eds.) PARLE 1994. LNCS, vol. 817, pp. 398–413. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  30. 30.
    Turner, D.N.: The Polymorphic Pi-Calculus: Theory and Implementation. PhD thesis, University of Edinburgh (1996)Google Scholar
  31. 31.
    Welch, P.H., Barnes, F.R.M.: Communicating Mobile Processes: introducing Occam-pi. In: Abdallah, A.E., Jones, C.B., Sanders, J.W. (eds.) Communicating Sequential Processes. LNCS, vol. 3525, pp. 175–210. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  32. 32.
    Yonezawa, A., Briot, J.-P., Shibayama, E.: Object-oriented concurrent programming in ABCL/1. In: OOPSLA, pp. 258–268 (1986)Google Scholar
  33. 33.
    Yonezawa, A., Tokoro, M.: Object-oriented concurrent programming: An introduction. In: Yonezawa, A., Tokoro, M. (eds.) Object-Oriented Concurrent Programming, pp. 1–7. MIT Press, Cambridge (1987)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Kohei Honda
    • 1
  • Raymond Hu
    • 2
  • Rumyana Neykova
    • 2
  • Tzu-Chun Chen
    • 1
  • Romain Demangeon
    • 1
  • Pierre-Malo Deniélou
    • 2
    • 3
  • Nobuko Yoshida
    • 2
  1. 1.Queen Mary, University of LondonUK
  2. 2.Imperial CollegeLondonUK
  3. 3.Royal Holloway, University of LondonUK

Personalised recommendations