On Action Permutation and Progress for Partially Commutative Asynchronous Binary Sessions

A theory of asynchronous binary sessions is generalized by asynchronous communication subtyping, which actually permutates and optimizes the actions on each participant. With the types of messages distinguished between dependent and independent types, a series of action asynchronous subtyping rules for the two kinds of message types are proposed, respectively. To make such action permutations automatic, an algorithmic asynchronous subtyping is presented, associating the subtyping for session types with asynchronous communication subtyping. In addition, action permutation and optimization will change the sequence and structure of messages sent and received. To ensure runtime safety, the cases of communication errors that may occur in asynchronous sessions are revealed by examples. What's more, the type compliance we defined assures the progress property, i.e., once a communication has been established, well-formed programs will never starve at communication points. Finally, we conclude and discuss some possible future work in this area.

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

[2]  Doina Bucur,et al.  Secure Data Flow in a Calculus for Context Awareness , 2008, Concurrency, Graphs and Models.

[3]  Jinfang Zhang,et al.  A Bounded Polymorphic Type System for Client-Server Interactions , 2012 .

[4]  Kohei Honda,et al.  An Interaction-based Language and its Typing System , 1994, PARLE.

[5]  Mariangiola Dezani-Ciancaglini,et al.  On Progress for Structured Communications , 2007, TGC.

[6]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[7]  Jane Hillston,et al.  Challenges for Quantitative Analysis of Collective Adaptive Systems , 2013, TGC.

[8]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

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

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

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

[12]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

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

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

[15]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[16]  Michael F. P. O'Boyle A Data Partitioning Algorithm for Distributed Memory Compilation , 1994, PARLE.

[17]  Dave Thomas ECOOP 2006 - Object-Oriented Programming, 20th European Conference, Nantes, France, July 3-7, 2006, Proceedings , 2006, ECOOP.

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

[19]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

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

[21]  Simon J. Gay,et al.  Types and Subtypes for Client-Server Interactions , 1999, ESOP.

[22]  Jinfang Zhang,et al.  A Polymorphic Type System with Progress for Binary Sessions , 2012, WISM.

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