A Concurrent Programming Language with Refined Session Types

  • Juliana Franco
  • Vasco Thudichum Vasconcelos
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8368)


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.


Credit Card Type System Donation Campaign Type Check 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.



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.


  1. 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. 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. 3.
    Boudol, G.: Asynchrony and the pi-calculus (note). Rapport de Recherche 1702, INRIA, Sophia-Antipolis (1992)Google Scholar
  4. 4.
    Caldeira, A., Vasconcelos, V.T.: Bica.
  5. 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. 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)CrossRefGoogle Scholar
  7. 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. 8.
    Gay, S.J., Hole, M.J.: Subtyping for session types in the pi calculus. Acta Inf. 42(2/3), 191–225 (2005)CrossRefzbMATHMathSciNetGoogle Scholar
  9. 9.
    Girard, J.-Y.: Linear logic. Theor. Comput. Sci. 50, 1–102 (1987)CrossRefzbMATHMathSciNetGoogle Scholar
  10. 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. 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. 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. 13.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Principles of Programming Languages, pp. 273–284. ACM (2008)Google Scholar
  14. 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. 15.
    Milner, R.: Functions as processes. J. Math. Struct. Comput. Sci. 2(2), 119–141 (1992)CrossRefzbMATHMathSciNetGoogle Scholar
  16. 16.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part I/II. Inf. Comput. 100, 1–77 (1992)CrossRefzbMATHMathSciNetGoogle Scholar
  17. 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. 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. 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. 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. 21.
    Turner, D.N.: The polymorphic Pi-calculus: theory and implementation. Ph.D. thesis, University of Edinburgh (1995)Google Scholar
  22. 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. 23.
    Vasconcelos, V.T.: TyCO gently. DI/FCUL TR 01–4, Faculty of Sciences, Department of Informatics, University of Lisbon (2001)Google Scholar
  24. 24.
    Vasconcelos, V.T.: Sessions, from types to programming languages. Bull. Eur. Assoc. Theor. Comput. Sci. 103, 53–73 (2011)Google Scholar
  25. 25.
    Vasconcelos, V.T.: Fundamentals of session types. Inf. Comput. 217, 52–70 (2012)CrossRefzbMATHMathSciNetGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  1. 1.LaSIGE, Faculdade De CiênciasUniversidade De LisboaLisboaPortugal

Personalised recommendations