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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
A type is contractive if it contains no sub-expression of the form .
- 2.
To keep types manageable we did not expand polyadic message passing.
References
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)
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)
Boudol, G.: Asynchrony and the pi-calculus (note). Rapport de Recherche 1702, INRIA, Sophia-Antipolis (1992)
Caldeira, A., Vasconcelos, V.T.: Bica. http://gloss.di.fc.ul.pt/bica
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)
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)
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)
Gay, S.J., Hole, M.J.: Subtyping for session types in the pi calculus. Acta Inf. 42(2/3), 191–225 (2005)
Girard, J.-Y.: Linear logic. Theor. Comput. Sci. 50, 1–102 (1987)
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)
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)
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)
Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: Principles of Programming Languages, pp. 273–284. ACM (2008)
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)
Milner, R.: Functions as processes. J. Math. Struct. Comput. Sci. 2(2), 119–141 (1992)
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part I/II. Inf. Comput. 100, 1–77 (1992)
Neubauer, M., Thiemann, P.: An implementation of session types. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 56–70. Springer, Heidelberg (2004)
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)
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)
Sackman, M., Eisenbach, S.: Session types in Haskell: updating message passing for the 21st century. Technical report, Department of Computing, Imperial College (2008) (2008)
Turner, D.N.: The polymorphic Pi-calculus: theory and implementation. Ph.D. thesis, University of Edinburgh (1995)
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)
Vasconcelos, V.T.: TyCO gently. DI/FCUL TR 01–4, Faculty of Sciences, Department of Informatics, University of Lisbon (2001)
Vasconcelos, V.T.: Sessions, from types to programming languages. Bull. Eur. Assoc. Theor. Comput. Sci. 103, 53–73 (2011)
Vasconcelos, V.T.: Fundamentals of session types. Inf. Comput. 217, 52–70 (2012)
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)