Skip to main content

Fundamentals of Session Types

  • Chapter
Formal Methods for Web Services (SFM 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5569))

Abstract

We present a reconstruction of session types in a linear pi calculus where types are qualified as linear or unrestricted. Linearly qualified communication channels are guaranteed to occur in exactly one thread, possibly multiple times. In our language each channel is characterised by two distinct variables, one used for reading, the other for writing; scope restriction binds together two variables, thus establishing the correspondence between the two ends of a same channel. This mechanism allows a precise control of resources via a linear type system. We build the language gradually, starting from simple input/output, then adding choice, recursive types, replication and finally subtyping. We also present an algorithmic type checking system.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.95
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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)

    Book  MATH  Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. Boreale, M., Bruni, R., 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)

    Chapter  Google Scholar 

  4. 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(2-3), 142–167 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. Castagna, G., Dezani-Ciancaglini, M., Giachino, E., Padovani, L.: Foundation of session types (unpublished) (2009)

    Google Scholar 

  7. Coppo, M., Dezani-Ciancaglini, M., Yoshida, N.: Asynchronous session types and progress for object-oriented languages. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, pp. 1–31. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  8. Cruz-Filipe, L., Lanese, I., Martins, F., Ravara, A., Vasconcelos, V.T.: Behavioural theory at work: program transformations in a service-centred calculus. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 59–77. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  9. Dezani-Ciancaglini, M., Drossopoulou, S., Giachino, E., Yoshida, N.: Bounded session types for object-oriented languages. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709, pp. 207–245. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  10. Dezani-Ciancaglini, M., Mostrous, D., Yoshida, N., Drossopolou, S.: Session types for object-oriented languages. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 328–352. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  11. Dezani-Ciancaglini, M., Yoshida, N., Ahern, A., Drossopolou, S.: A distributed object-oriented language with session types. In: De Nicola, R., Sangiorgi, D. (eds.) TGC 2005. LNCS, vol. 3705, pp. 299–318. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  12. Fähndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G., Larus, J.R., Levi, S.: Language support for fast and reliable message-based communication in Singularity OS. SIGOPS Operating Systems Review 40(4), 177–190 (2006)

    Article  Google Scholar 

  13. Gay, S.J.: Bounded polymorphism in session types. Mathematical Structures in Computer Science 18(5), 895–930 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  14. Gay, S.J., Hole, M.J.: Subtyping for session types in the pi calculus. Acta Informatica 42(2/3), 191–225 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  15. Gay, S.J., Vasconcelos, V.T.: Asynchronous functional session types. TR 2007–251, Department of Computing, University of Glasgow (May 2007)

    Google Scholar 

  16. Gay, S.J., Vasconcelos, V.T.: Linear type theory for asynchronous session types (2008) (submitted)

    Google Scholar 

  17. Giunti, M., Honda, K., Vasconcelos, V.T., Yoshida, N.: Session-based type discipline for pi calculus with matching. In: PLACES 2009 (2009)

    Google Scholar 

  18. Honda, K.: Types for dyadic interaction. In: Best, E. (ed.) CONCUR 1993. LNCS, vol. 715, pp. 509–523. Springer, Heidelberg (1993)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  20. 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)

    Chapter  Google Scholar 

  21. Kobayashi, N., Pierce, B.C., Turner, D.N.: Linearity and the pi-calculus. ACM Transactions on Programming Languages and Systems 21(5), 914–947 (1999)

    Article  Google Scholar 

  22. Lanese, I., Vasconcelos, V.T., Martins, F., Ravara, A.: Disciplining orchestration and conversation in service-oriented computing. In: Proceedings of SEFM 2007, pp. 305–314. IEEE Computer Society Press, Los Alamitos (2007)

    Google Scholar 

  23. Mostrous, D., Yoshida, N.: A session object calculus for structured communication-based programming (unpublished) (2008)

    Google Scholar 

  24. Mostrous, D., Yoshida, N., Honda, K.: 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 

  25. Neubauer, M., Thiemann, P.: An implementation of session types. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 56–70. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  26. Neubauer, M., Thiemann, P.: Session types for asynchronous communication (unpublished) (2004)

    Google Scholar 

  27. Sangiorgi, D.: π-calculus, internal mobility and agent-passing calculi. Theoretical Computer Science 167(1,2), 235–274 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  28. 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)

    Chapter  Google Scholar 

  29. Vallecillo, A., Vasconcelos, V.T., Ravara, A.: Typing the behavior of objects and components using session types. Fundamenta Informaticæ 73(4), 583–598 (2006)

    MathSciNet  MATH  Google Scholar 

  30. Vasconcelos, V.T., Gay, S.J., Ravara, A.: Typechecking a multithreaded functional language with session types. Theoretical Computer Science 368(1–2), 64–87 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  31. Vasconcelos, V.T., Gay, S.J., Ravara, A., Gesbert, N., Caldeira, A.Z.: Dynamic interfaces. In: FOOL 2009 (2009)

    Google Scholar 

  32. Vasconcelos, V.T., Ravara, A., Gay, S.J.: Session types for functional multithreading. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 497–511. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  33. Walker, D.: Substructural Type Systems. In: Advanced Topics in Types and Programming Languages. MIT Press, Cambridge (2005)

    Google Scholar 

  34. Yoshida, N., Vasconcelos, V.T.: Language primitives and type discipline for structured communication-based programming revisited: Two systems for higher-order session communication. In: Proceedings of SecReT 2007. ENTCS, vol. 171(4), pp. 73–93. Elsevier Science, Amsterdam (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Vasconcelos, V.T. (2009). Fundamentals of Session Types. In: Bernardo, M., Padovani, L., Zavattaro, G. (eds) Formal Methods for Web Services. SFM 2009. Lecture Notes in Computer Science, vol 5569. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-01918-0_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-01918-0_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-01917-3

  • Online ISBN: 978-3-642-01918-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics