Skip to main content

A Concurrent Programming Language with Refined Session Types

  • Conference paper
  • First Online:
Software Engineering and Formal Methods (SEFM 2013)

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

Included in the following conference series:

Abstract

We present SePi, a concurrent programming language based on the monadic pi-calculus, where interaction is governed by linearly refined session types. On top of the core calculus and type system, and in order to facilitate programming, we introduce a number of abbreviations and derived constructs. This paper provides a brief introduction to the language.

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 39.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

Notes

  1. 1.

    A type is contractive if it contains no sub-expression of the form .

  2. 2.

    To keep types manageable we did not expand polyadic message passing.

References

  1. Baltazar, P., Mostrous, D., Vasconcelos, V.T.: Linearly refined session types. In: 2nd International Workshop on Linearity, vol. 101 of EPTCS, pp. 38–49 (2012)

    Google Scholar 

  2. Bhargavan, K., Corin, R., Deniélou, P.-M., Fournet, C., Leifer, J.J.: Cryptographic protocol synthesis and verification for multiparty sessions. In: Computer Security Foundations Symposium, pp. 124–140. IEEE (2009)

    Google Scholar 

  3. Boudol, G.: Asynchrony and the pi-calculus (note). Rapport de Recherche 1702, INRIA, Sophia-Antipolis (1992)

    Google Scholar 

  4. Caldeira, A., Vasconcelos, V.T.: Bica. http://gloss.di.fc.ul.pt/bica

  5. Campos, J., Vasconcelos, V.T.: Channels as objects in concurrent object-oriented programming. In: 3rd International Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software, vol. 69 of EPTCS, pp. 12–28 (2011)

    Google Scholar 

  6. 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. Oper. Syst. Rev. 40(4), 177–190 (2006)

    Article  Google Scholar 

  7. Gay, S., Vasconcelos, V.T., Ravara, A., Gesbert, N., Caldeira, A.Z.: Modular session types for distributed object-oriented programming. In: Principles of Programming Languages, pp. 299–312. ACM (2010)

    Google Scholar 

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

    Article  MATH  MathSciNet  Google Scholar 

  9. Girard, J.-Y.: Linear logic. Theor. Comput. Sci. 50, 1–102 (1987)

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  13. Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Principles of Programming Languages, pp. 273–284. ACM (2008)

    Google Scholar 

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

    Google Scholar 

  15. Milner, R.: Functions as processes. J. Math. Struct. Comput. Sci. 2(2), 119–141 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  16. Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part I/II. Inf. Comput. 100, 1–77 (1992)

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

  18. Ng, N., Yoshida, N., Honda, K.: Multiparty session C: safe parallel programming with message optimisation. In: Furia, C.A., Nanz, S. (eds.) TOOLS 2012. LNCS, vol. 7304, pp. 202–218. Springer, Heidelberg (2012)

    Google Scholar 

  19. Pierce, B.C., Turner, D.N.: Pict: a programming language based on the pi-calculus. In: Plotkin, G.D., Stirling, C.P., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner, pp. 455–494. MIT Press, Massachusetts (2000)

    Google Scholar 

  20. Sackman, M., Eisenbach, S.: Session types in Haskell: updating message passing for the 21st century. Technical report, Department of Computing, Imperial College (2008) (2008)

    Google Scholar 

  21. Turner, D.N.: The polymorphic Pi-calculus: theory and implementation. Ph.D. thesis, University of Edinburgh (1995)

    Google Scholar 

  22. Ng, N., Yoshida, N., Honda, K.: Multiparty session C: safe parallel programming with message optimisation. In: Pareschi, R. (ed.) ECOOP 1994. LNCS, vol. 821, pp. 202–218. Springer, Heidelberg (1994)

    Google Scholar 

  23. Vasconcelos, V.T.: TyCO gently. DI/FCUL TR 01–4, Faculty of Sciences, Department of Informatics, University of Lisbon (2001)

    Google Scholar 

  24. Vasconcelos, V.T.: Sessions, from types to programming languages. Bull. Eur. Assoc. Theor. Comput. Sci. 103, 53–73 (2011)

    Google Scholar 

  25. Vasconcelos, V.T.: Fundamentals of session types. Inf. Comput. 217, 52–70 (2012)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Acknowledgements

This work was partially supported by project PTDC/EIA–CCO/1175 13/2010 and by LaSIGE (PEst-OE/EEI/UI0408/2011). We are grateful to Dimitris Mostrous, Hugo Vieira, and to anonymous referees for their feedback.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Juliana Franco .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Franco, J., Vasconcelos, V.T. (2014). A Concurrent Programming Language with Refined Session Types. In: Counsell, S., Núñez, M. (eds) Software Engineering and Formal Methods. SEFM 2013. Lecture Notes in Computer Science(), vol 8368. Springer, Cham. https://doi.org/10.1007/978-3-319-05032-4_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-05032-4_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-05031-7

  • Online ISBN: 978-3-319-05032-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics