A Session Subtyping Tool (Extended Version)

Session types are becoming popular and have been integrated in several mainstream programming languages. Nevertheless, while many programming languages consider asynchronous fifo channel communication, the notion of subtyping used in session type implementations is the one defined by Gay and Hole for synchronous communication. This might be because there are several notions of asynchronous session subtyping, these notions are usually undecidable, and only recently sound (but not complete) algorithmic characterizations for these subtypings have been proposed. But the fact that the definition of asynchronous session subtyping and the theory behind related algorithms are not easily accessible to non-experts may also prevent further integration. The aim of this paper, and of the tool presented therein, is to make the growing body of knowledge about asynchronous session subtyping more accessible, thus promoting its integration in practical applications of session types.

[1]  Jens Palsberg,et al.  Efficient recursive subtyping , 1992, POPL '93.

[2]  Mario Bravetti,et al.  Behavioural Types for Memory and Method Safety in a Core Object-Oriented Language , 2020, APLAS.

[3]  Davide Ancona,et al.  Behavioral Types in Programming Languages , 2016, Found. Trends Program. Lang..

[4]  Daniel Brand,et al.  On Communicating Finite-State Machines , 1983, JACM.

[5]  Nobuko Yoshida,et al.  Effects as sessions, sessions as effects , 2016, POPL.

[6]  Mario Bravetti,et al.  Fair Refinement for Asynchronous Session Types , 2021, FoSSaCS.

[7]  Mario Bravetti Axiomatizing Maximal Progress and Discrete Time , 2021, Log. Methods Comput. Sci..

[8]  Mario Bravetti,et al.  On the Expressive Power of Process Interruption and Compensation , 2008, WS-FM.

[9]  Mario Bravetti,et al.  On the boundary between decidability and undecidability of asynchronous session subtyping , 2018, Theor. Comput. Sci..

[10]  Nobuko Yoshida,et al.  Multiparty Compatibility in Communicating Automata: Characterisation and Synthesis of Global Session Types , 2013, ICALP.

[11]  Mario Bravetti,et al.  A Sound Algorithm for Asynchronous Session Subtyping and its Implementation , 2021, Log. Methods Comput. Sci..

[12]  Nobuko Yoshida,et al.  Session typing and asynchronous subtyping for the higher-order π-calculus , 2015, Inf. Comput..

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

[14]  Mariangiola Dezani-Ciancaglini,et al.  On the Preciseness of Subtyping in Session Types , 2014, PPDP '14.

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

[16]  António Ravara,et al.  Java Typestate Checker , 2021, COORDINATION.

[17]  Nobuko Yoshida,et al.  Lightweight Session Programming in Scala , 2016, ECOOP.

[18]  Mario Bravetti,et al.  Asynchronous session subtyping as communicating automata refinement , 2021, Softw. Syst. Model..

[19]  Luca Padovani,et al.  A simple library implementation of binary sessions* , 2016, Journal of Functional Programming.

[20]  Mario Bravetti,et al.  Undecidability of asynchronous session subtyping , 2016, Inf. Comput..

[21]  Sam Lindley,et al.  Embedding session types in Haskell , 2016, Haskell.

[22]  Nobuko Yoshida,et al.  Hybrid Session Verification Through Endpoint API Generation , 2016, FASE.

[23]  Nobuko Yoshida,et al.  Characteristic Formulae for Session Types , 2016, TACAS.