A Session Type System with Subject Reduction

Distributed applications and services have become pervasive in our society due to the widespread use of internet and mobile devices. There are urgent demands to efficiently ensure safety and correctness of such software. A session-type system is a framework to statically check whether communication descriptions conform to certain protocols. They are shown to be effective yet simple enough to fit in harmony with existing programming languages. In the original session type system, the subject reduction property does not hold. This paper establishes a conservative extension of the original session type system with the subject reduction property. Finally, it is also shown that our typing rule properly extends the set of typeable processes. key words: Pi-calculus, session types, type system, subject reduction, concurrency, process calculi, polarity

[1]  Davide Sangiorgi,et al.  Typing and subtyping for mobile processes , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[2]  Nobuko Yoshida,et al.  Session-based Type Discipline for Pi Calculus with Matching , 2009 .

[3]  Vasco Thudichum Vasconcelos,et al.  A Linear Account of Session Types in the Pi Calculus , 2010, CONCUR.

[4]  Dezani Mariangiola,et al.  On Progress for Structured Communications , 2008 .

[5]  Atsushi Igarashi,et al.  A generic type system for the Pi-calculus , 2004, Theor. Comput. Sci..

[6]  Vasco Thudichum Vasconcelos,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 1998, SecReT@ICALP.

[7]  Riccardo Pucella,et al.  Haskell session types with (almost) no class , 2008, Haskell '08.

[8]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[9]  Nobuko Yoshida,et al.  Type-Safe Eventful Sessions in Java , 2010, ECOOP.

[10]  Shin Saito,et al.  An Implicitly-Typed Deadlock-Free Process Calculus , 2000, CONCUR.

[11]  Mariangiola Dezani-Ciancaglini,et al.  Asynchronous Session Types and Progress for Object Oriented Languages , 2007, FMOODS.

[12]  António Ravara,et al.  Type checking a multithreaded functional language with session types , 2006, Theor. Comput. Sci..

[13]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 1999, OOPSLA '99.

[14]  Kiyoshi Agusa,et al.  Session Type Inference in Haskell , 2011, PLACES.

[15]  Benjamin C. Pierce,et al.  Linearity and the pi-calculus , 1999, TOPL.

[16]  Hugo Torres Vieira,et al.  Conversation types , 2009, Theor. Comput. Sci..

[17]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[18]  Nobuko Yoshida,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 2007, Electron. Notes Theor. Comput. Sci..