Foundations of session types

We present a streamlined theory of session types based on a simple yet general and expressive formalism whose main eatures are semantically characterized and where each design choice is semantically justified. We formally define the semantics of session types and use it to devise the subsessioning relation. We give a coinductive characterization of subsessioning and describe algorithms to decide all the key relations defined in the article. We demonstrate the generality and expressive power of our framework by providing a session-based type system for a pi-calculus variant that does not rely on any specialized construct for session-based communication. The type system is shown to guarantee absence of communication errors and global progress.

[1]  Sophia Drossopoulou,et al.  Amalgamating sessions and methods in object-oriented languages with generics , 2009, Theor. Comput. Sci..

[2]  Luca Padovani,et al.  A theory of contracts for Web services , 2007, TOPL.

[3]  Lucia Acciai,et al.  A Type System for Client Progress in a Service-Oriented Calculus , 2008, Concurrency, Graphs and Models.

[4]  Matthew Hennessy,et al.  Testing Theories for Asynchronous Languages , 1998, FSTTCS.

[5]  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.

[6]  Rocco De Nicola,et al.  Testing Equivalences for Processes , 1984, Theor. Comput. Sci..

[7]  Robin Milner,et al.  Modal Logics for Mobile Processes , 1991, Theor. Comput. Sci..

[8]  Mariangiola Dezani-Ciancaglini,et al.  BASS: boxed ambients with safe sessions , 2006, PPDP '06.

[9]  Daniele Varacca,et al.  Semantic subtyping for the pi-calculus , 2008, Theor. Comput. Sci..

[10]  Atsushi Igarashi,et al.  A generic type system for the Pi-calculus , 2001, POPL '01.

[11]  Kohei Honda,et al.  Types for Dyadic Interaction , 1993, CONCUR.

[12]  Anna Ingólfsdóttir,et al.  A Theory of Communicating Processes with Value Passing , 1993, Inf. Comput..

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

[14]  Simon J. Gay,et al.  Subtyping for session types in the pi calculus , 2005, Acta Informatica.

[15]  Sophia Drossopoulou,et al.  A Distributed Object-Oriented Language with Session Types , 2005, TGC.

[16]  Eduardo Bonelli,et al.  Correspondence assertions for process synchronization in concurrent communications , 2005, J. Funct. Program..

[17]  Mariangiola Dezani-Ciancaglini,et al.  Session and Union Types for Object Oriented Programming , 2008, Concurrency, Graphs and Models.

[18]  Kohei Honda,et al.  Types for Dynamic Interaction , 1993 .

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

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

[21]  Roberto Bruni,et al.  Sessions and Pipelines for Structured Service Programming , 2008, FMOODS.

[22]  Anna Ingólfsdóttir,et al.  A Theory of Communicating Processes with Value-Passing , 1990, ICALP.

[23]  Leonardo Gaetano Mezzina How to Infer Finite Session Types in a Calculus of Services and Sessions , 2008, COORDINATION.

[24]  Vasco Thudichum Vasconcelos,et al.  Linear type theory for asynchronous session types , 2009, Journal of Functional Programming.

[25]  Nobuko Yoshida,et al.  Global Principal Typing in Partially Commutative Asynchronous Sessions , 2009, ESOP.

[26]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 2001, TOPL.

[27]  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..

[28]  B. Pierce,et al.  Typing and subtyping for mobile processes , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[29]  Sophia Drossopoulou,et al.  Bounded Session Types for Object Oriented Languages , 2006, FMCO.

[30]  Daniele Varacca,et al.  Semantic subtyping for the /spl pi/-calculus , 2005, 20th Annual IEEE Symposium on Logic in Computer Science (LICS' 05).

[31]  Naoki Kobayashi,et al.  Type Systems for Concurrent Programs , 2002, 10th Anniversary Colloquium of UNU/IIST.

[32]  Simon J. Gay Bounded polymorphism in session types , 2008, Math. Struct. Comput. Sci..

[33]  Sophia Drossopoulou,et al.  Session Types for Object-Oriented Languages , 2006, ECOOP.

[34]  Antonio Vallecillo,et al.  Typing the Behavior of Objects and Component Using Session Types , 2003, FOCLASA.

[35]  Giuseppe Castagna,et al.  Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types , 2008, JACM.

[36]  Rocco De Nicola,et al.  CCS without tau's , 1987, TAPSOFT, Vol.1.

[37]  Vasco T. Vasconcelos,et al.  Fundamentals of Session Types, Formal Methods for Web Services , 2009 .

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

[39]  Giuseppe Castagna,et al.  A Gentle Introduction to Semantic Subtyping , 2005, ICALP.

[40]  R. Nicola,et al.  Semantic subtyping for the π-calculus , 2004 .

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

[42]  Alain Frisch Regular Tree Language Recognition with Static Information , 2004, IFIP TCS.

[43]  Giuseppe Castagna,et al.  A gentle introduction to semantic subtyping , 2005, ICALP.