Benefits of session types for software development

Session types are a formalism used to specify and check the correctness of communication based systems. Within their scope, they can guarantee the absence of communication errors such as deadlock, sending an unexpected message or failing to handle an incoming message. Introduced over two decades ago, they have developed into a significant theme in programming languages. In this paper we examine the beliefs that drive research into this area and make it popular. We look at the claims and motivation behind session types throughout the literature. We identify the hypotheses upon which session types have been designed and implemented, and attempt to clarify and formulate them in a more suitable manner for testing.

[1]  Philip Wadler,et al.  Links : Linking Theory to Practice for the Web Case for Support , 2005 .

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

[3]  Dimitrios Kouzapas,et al.  Typechecking protocols with Mungo and StMungo , 2016, PPDP.

[4]  Rumyana Neykova Session Types Go Dynamic or How to Verify Your Python Conversations , 2013, PLACES.

[5]  Frank Pfenning,et al.  Polarized Substructural Session Types , 2015, FoSSaCS.

[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]  Per Ola Kristensson,et al.  Aiding programmers using lightweight integrated code visualization , 2015, PLATEAU@SPLASH.

[8]  Jan Van den Bergh,et al.  A user study for comparing the programming efficiency of modifying executable multimodal interaction descriptions: a domain-specific language versus equivalent event-callback code , 2015, PLATEAU@SPLASH.

[9]  Nobuko Yoshida,et al.  Session types: towards safe and fast reconfigurable programming , 2012, CARN.

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

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

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

[13]  Nobuko Yoshida,et al.  Static deadlock detection for concurrent go by global session graph synthesis , 2016, CC.

[14]  Nobuko Yoshida,et al.  Two Session Typing Systems for Higher-Order Mobile Processes , 2007, TLCA.

[15]  Vasco Thudichum Vasconcelos Fundamentals of Session Types , 2009, SFM.

[16]  Peter Thiemann,et al.  Context-free session types , 2016, ICFP.

[17]  Mikkel Rønne Jakobsen,et al.  Fisheyes in the field: using method triangulation to study the adoption and use of a source code visualization , 2009, CHI.

[18]  Jan Vitek,et al.  Is sound gradual typing dead? , 2016, POPL.

[19]  Nobuko Yoshida,et al.  Session-Based Distributed Programming in Java , 2008, ECOOP.

[20]  Nobuko Yoshida,et al.  Multiparty asynchronous session types , 2008, POPL '08.

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

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

[23]  Simon Fowler,et al.  An Erlang Implementation of Multiparty Session Actors , 2016, ICE.