Session-Based Compositional Analysis for Actor-Based Languages Using Futures

This paper proposes a simple yet concise framework to statically verify communication correctness in a concurrency model using futures. We consider the concurrency model of the core ABS language, which supports actor-style asynchronous communication using futures and cooperative scheduling. We provide a type discipline based on session types, which gives a high-level abstraction for structured interactions. By using it we statically verify if the local implementations comply with the communication correctness. We extend core ABS with sessions and annotations to express scheduling policies based on required communication ordering. The annotation is statically checked against the session automata derived from the session types.

[1]  Nobuko Yoshida,et al.  Multiparty Session Types Meet Communicating Automata , 2012, ESOP.

[2]  Nobuko Yoshida,et al.  Multiparty Session Actors , 2014 .

[3]  Frank S. de Boer,et al.  User-defined schedulers for real-time concurrent objects , 2012, Innovations in Systems and Software Engineering.

[4]  Nissim Francez,et al.  Finite-Memory Automata , 1994, Theor. Comput. Sci..

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

[6]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

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

[8]  Eduard Kamburjan Session Types for ABS , 2016 .

[9]  Radu Grigore,et al.  53 25 v 3 [ cs . F L ] 2 0 Ja n 20 15 Runtime Verification Based on Register Automata , 2015 .

[10]  Frank S. de Boer,et al.  Schedulability of asynchronous real-time concurrent objects , 2009, J. Log. Algebraic Methods Program..

[11]  Reiner Hähnle,et al.  KeY-ABS: A Deductive Verification Tool for the Concurrent Modelling Language ABS , 2015, CADE.

[12]  Robert E. Strom,et al.  Typestate: A programming language concept for enhancing software reliability , 1986, IEEE Transactions on Software Engineering.

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

[14]  Reiner Hähnle,et al.  The Abstract Behavioral Specification Language: A Tutorial Introduction , 2012, FMCO.

[15]  António Ravara,et al.  Modular Session Types for Objects , 2015, Log. Methods Comput. Sci..

[16]  Olaf Owe,et al.  Compositional reasoning about active objects with shared futures , 2014, Formal Aspects of Computing.

[17]  Vasco Thudichum Vasconcelos,et al.  Channels as Objects in Concurrent Object-Oriented Programming , 2010, PLACES.

[18]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[19]  Eran Yahav,et al.  Typestate verification: Abstraction techniques and complexity results , 2005, Sci. Comput. Program..

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

[21]  Benedikt Bollig,et al.  A Fresh Approach to Learning Register Automata , 2013, Developments in Language Theory.