Sessions and Session Types: An Overview

  • Mariangiola Dezani-Ciancaglini
  • Ugo de’Liguoro
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6194)


We illustrate the concepts of sessions and session types as they have been developed in the setting of the π-calculus. Motivated by the goal of obtaining a formalisation closer to existing standards and aiming at their enhancement and strengthening, several extensions of the original core system have been proposed, which we survey together with the embodying of sessions into functional and object-oriented languages, as well as some implementations.


Process calculi Type Systems Service Oriented Computing 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)zbMATHGoogle Scholar
  2. Boreale, M., Bruni, R., Caires, L., De Nicola, R., Lanese, I., Loreti, M., Martins, F., Montanari, U., Ravara, A., Sangiorgi, D., Vasconcelos, V., Zavattaro, G.: SCC: a Service Centered Calculus. In: Bravetti, M., Núñez, M., Zavattaro, G. (eds.) WS-FM 2006. LNCS, vol. 4184, pp. 38–57. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  3. Boreale, M., Bruni, R., De Nicola, R., Loreti, M.: Sessions and Pipelines for Structured Service Programming. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 19–38. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  4. Bugliesi, M., Castagna, G., Crafa, S.: Access Control for Mobile Agents: The Calculus of Boxed Ambients. ACM Transactions on Programming Languages and Systems 26(1), 57–124 (2004)CrossRefGoogle Scholar
  5. 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
  6. Bhargavan, K., Corin, R., Deniélou, P.-M., Fournet, C., Leifer, J.J.: Cryptographic Protocol Synthesis and Verification for Multiparty Sessions. In: CSF 2009, pp. 124–140. IEEE Computer Society, Los Alamitos (2009)Google Scholar
  7. Bettini, L., Capecchi, S., Dezani-Ciancaglini, M., Giachino, E., Venneri, B.: Session and Union Types for Object Oriented Programming. In: Degano, P., De Nicola, R., Meseguer, J. (eds.) Concurrency, Graphs and Models. LNCS, vol. 5065, pp. 659–680. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  8. Barbanera, F., Capecchi, S., de’Liguoro, U.: Typing Asymmetric Client-Server Interaction. In: Sirjani, M. (ed.) FSEN 2009. LNCS, vol. 5961, pp. 97–112. Springer, Heidelberg (2010)Google Scholar
  9. Bonelli, E., Compagnoni, A., Gunter, E.: Correspondence Assertions for Process Synchronization in Concurrent Communications. Journal of Functional Programming 15(2), 219–248 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  10. Buscemi, M., Montanari, U.: CC-Pi: A Constraint-Based Language for Specifying Service Level Agreements. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 18–32. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  11. Buscemi, M., Montanari, U.: Open Bisimulation for the Concurrent Constraint Pi-Calculus. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 254–268. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. Boreale, M.: On the Expressiveness of Internal Mobility in Name-Passing Calculi. Theoretical Computer Science 195(2), 205–226 (1998)zbMATHCrossRefMathSciNetGoogle Scholar
  13. Bruce, K.: Foundations of Object-Oriented Languages: Types and Semantics. MIT Press, Cambridge (2002)Google Scholar
  14. Berger, M., Yoshida, N., Honda, K.: Completeness and Logical Full Abstraction in Modal Logics for Typed Mobile Processes. In: Aceto, L., Damgård, I., Goldberg, L.A., Halldórsson, M.M., Ingólfsdóttir, A., Walukiewicz, I. (eds.) ICALP 2008, Part II. LNCS, vol. 5126, pp. 99–111. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  15. Bravetti, M., Zavattaro, G.: Towards a Unifying Theory for Choreography Conformance and Contract Compliance. In: Lumpe, M., Vanderperren, W. (eds.) SC 2007. LNCS, vol. 4829, pp. 34–50. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  16. Capecchi, S., Coppo, M., Dezani-Ciancaglini, M., Drossopoulou, S., Giachino, E.: Amalgamating Sessions and Methods in Object Oriented Languages with Generics. Theoretical Computer Science 410, 142–167 (2009)zbMATHCrossRefMathSciNetGoogle Scholar
  17. Capecchi, S., Castellani, I., Dezani, M., Rezk, T.: Session Types for Access and Information Flow Control (2009),
  18. Coppo, M., Dezani-Ciancaglini, M.: Structured Communications with Concurrent Constraints. In: Kaklamanis, C., Nielson, F. (eds.) TGC 2008. LNCS, vol. 5474, pp. 104–125. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  19. Castagna, G., Dezani-Ciancaglini, M., Giachino, E., Padovani, L.: Foundations of Session Types. In: PPDP 2009, pp. 219–230. ACM Press, New York (2009)CrossRefGoogle Scholar
  20. Castagna, G., Frisch, A.: A Gentle Introduction to Semantic Subtyping. In: PPDP 2005, pp. 198–208. ACM Press, New York (2005) (full version); Caires, L., Italiano, G.F., Monteiro, L., Palamidessi, C., Yung, M. (eds.) ICALP 2005. LNCS, vol. 3580, pp. 30–34. Springer, Heidelberg (2005) Joint ICALP-PPDP keynote talk. CrossRefGoogle Scholar
  21. Castagna, G., Gesbert, N., Padovani, L.: A Theory of Contracts for Web Services. ACM Transactions on Programming Languages and Systems article n.19, 31(5), p. 51 (2009)CrossRefGoogle Scholar
  22. Carbone, M., Honda, K., Yoshida, N.: Structured Communication-Centred Programming for Web Services. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 2–17. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  23. Carbone, M., Honda, K., Yoshida, N.: Structured Interactional Exceptions for Session Types. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 402–417. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  24. Clarke, D., Noble, J., Potter, J.: Simple Ownership Types for Object Containment. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 53–76. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  25. Castagna, G., Padovani, L.: Contracts for Mobile Processes. In: Bravetti, M., Zavattaro, G. (eds.) CONCUR 2009. LNCS, vol. 5710, pp. 211–228. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  26. Caires, L., Vieira, H.T.: Conversation Types. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 285–300. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  27. Dezani-Ciancaglini, M., de’ Liguoro, U., Yoshida, N.: On Progress for Structured Communications. In: Barthe, G., Fournet, C. (eds.) TGC 2007 and FODO 2008. LNCS, vol. 4912, pp. 257–275. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  28. Dezani-Ciancaglini, M., Drossopoulou, S., Mostrous, D., Yoshida, N.: Session Types for Object-Oriented Languages. Information and Computation 207(5), 595–641 (2009)zbMATHCrossRefMathSciNetGoogle Scholar
  29. De Nicola, R., Hennessy, M.: CCS Without τ’s. In: Ehrig, H., Levi, G., Montanari, U. (eds.) CAAP 1987 and TAPSOFT 1987. LNCS, vol. 249, pp. 138–152. Springer, Heidelberg (1987)Google Scholar
  30. Fähndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G.C., Larus, J.R., Levi, S.: Language Support for Fast and Reliable Message-based Communication in Singularity OS. In: EuroSys 2006, ACM SIGOPS, pp. 177–190. ACM Press, New York (2006)Google Scholar
  31. Gay, S.: Bounded Polymorphism in Session Types. Mathematical Structures in Computer Science 18(5), 895–930 (2007)CrossRefMathSciNetGoogle Scholar
  32. Gay, S., Gesbert, N., Ravara, A.: Session Types as Generic Process Types. In: PLACES 2008, pp. 16–21 (2008),
  33. Gay, S., Hole, M.: Subtyping for Session Types in the Pi-Calculus. Acta Informatica 42(2/3), 191–225 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  34. Gay, S., Vasconcelos, V.: Linear Type Theory for Asynchronous Session Types. Journal of Functional Programming 20(1), 19–50 (2010)zbMATHCrossRefGoogle Scholar
  35. Gay, S., Vasconcelos, V., Ravara, A., Gesbert, N., Caldeira, A.: Modular Session Types for Distributed Object-Oriented Programming. In: POPL 2010, pp. 299–312. ACM Press, New York (2010)CrossRefGoogle Scholar
  36. Honda, K., Mostrous, D., Yoshida, N.: Global Principal Typing in Partially Commutative Asynchronous Sessions. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 316–332. Springer, Heidelberg (2009)Google Scholar
  37. Honda, K., Vasconcelos, V., Kubo, M.: Language Primitives and Type Disciplines for Structured Communication-based Programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  38. Honda, K., Yoshida, N., Carbone, M.: Multiparty Asynchronous Session Types. In: POPL 2008, pp. 273–284. ACM, New York (2008)CrossRefGoogle Scholar
  39. Hu, R., Yoshida, N., Honda, K.: Session-Based Distributed Programming in Java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 516–541. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  40. Igarashi, A., Kobayashi, N.: A Generic Type System for the Pi-Calculus. Theoretical Computer Science 311(1-3), 121–163 (2004)zbMATHCrossRefMathSciNetGoogle Scholar
  41. Jones, S.P., Gordon, A., Finne, S.: Concurrent Haskell. In: POPL 1996, pp. 295–308. ACM Press, New York (1996)CrossRefGoogle Scholar
  42. Kobayashi, N.: A Partially Deadlock-Free Typed Process Calculus. ACM Transactions on Programming Languages and Systems 20(2), 436–482 (1998)CrossRefGoogle Scholar
  43. Kobayashi, N.: A Type System for Lock-Free Processes. Information and Computation 177, 122–159 (2002)zbMATHMathSciNetGoogle Scholar
  44. Kobayashi, N.: Type Systems for Concurrent Programs. In: Aichernig, B.K., Maibaum, T. (eds.) Formal Methods at the Crossroads. LNCS, vol. 2757, pp. 439–453. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  45. Kobayashi, N.: Type-Based Information Flow Analysis for the Pi-Calculus. Acta Informatica 42(4-5), 291–347 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  46. Kobayashi, N.: A New Type System for Deadlock-Free Processes. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 233–247. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  47. Kobayashi, N.: Type Systems for Concurrent Programs. In: Extended version of [Kob03], Tohoku University (2007)Google Scholar
  48. Laneve, C., Padovani, L.: The Pairing of Contracts and Session Types. In: Degano, P., De Nicola, R., Meseguer, J. (eds.) Concurrency, Graphs and Models. LNCS, vol. 5065, pp. 681–700. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  49. López, H., Pérez, J., Olarte, C.: Towards a Unified Framework for Declarative Structured Communications. In: PLACES 2009. EPTCS, vol. 17, pp. 1–16 (2010)Google Scholar
  50. Lapadula, A., Pugliese, R., Tiezzi, F.: A Calculus for Orchestration of Web Services. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 33–47. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  51. Meredith, G., Bjorg, S.: Contracts and Types. Communications of the ACM 46(10), 41–47 (2003)CrossRefGoogle Scholar
  52. Mostrous, D., Yoshida, N.: Two Sessions Typing Systems for Higher-Order Mobile Processes. In: Della Rocca, S.R. (ed.) TLCA 2007. LNCS, vol. 4583, pp. 321–335. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  53. Mostrous, D., Yoshida, N.: A Session Object Calculus for Structured Communication-Based Programming (2008),
  54. Mostrous, D., Yoshida, N.: Session-Based Communication Optimisation for Higher-Order Mobile Processes. In: Curien, P.-L. (ed.) TLCA 2009. LNCS, vol. 5608, pp. 203–218. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  55. Neubauer, M., Thiemann, P.: An Implementation of Session Types. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 56–70. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  56. Olarte, C., Valencia, F.: Universal Concurrent Constraint Programming: Symbolic Semantics and Applications to Security. In: SAC 2008, pp. 145–150. ACM, New York (2008)CrossRefGoogle Scholar
  57. Padovani, L.: Session Types at the Mirror. In: ICE 2009. EPTCS, vol. 12, pp. 71–86 (2009)Google Scholar
  58. Reppy, J.H.: Concurrent Programming in ML. Cambridge University Press, Cambridge (1999)CrossRefGoogle Scholar
  59. Sackman, M., Eisenbach, S.: Session Types in Haskell (Updating Message Passing for the 21st Century) (2008),
  60. Sangiorgi, D., Walker, D.: The π-Calculus: a Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)Google Scholar
  61. 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)Google Scholar
  62. Vasconcelos, V.: Fundamentals of Session Types. In: Bernardo, M., Padovani, L., Zavattaro, G. (eds.) SFM 2009. LNCS, vol. 5569, pp. 158–186. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  63. Vasconcelos, V.: Session Types for Linear Multithreaded Functional Programming. In: PPDP 2009, pp. 1–6. ACM Press, New York (2009)CrossRefGoogle Scholar
  64. Vasconcelos, V., Gay, S., Ravara, A.: Typechecking a Multithreaded Functional Language with Session Types. Theoretical Computer Science 368, 64–87 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  65. Vasconcelos, V., Gay, S., Ravara, A., Gesbert, N., Caldeira, A.: Dynamic Interfaces. In: FOOL 2009 (2009),
  66. Yoshida, N., Vasconcelos, V.: Language Primitives and Type Disciplines for Structured Communication-based Programming Revisited. In: SecReT 2006. ENTCS, vol. 171, pp. 73–93. Elsevier, Amsterdam (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Mariangiola Dezani-Ciancaglini
    • 1
  • Ugo de’Liguoro
    • 1
  1. 1.Dipartimento di InformaticaUniversità di TorinoTorinoItaly

Personalised recommendations