A theory of retractable and speculative contracts

Behavioral contracts are abstract descriptions of expected communication patterns followed by either clients or servers during their interaction. Behavioral contracts come naturally equipped with a notion of compliance: when a client and a server follow compliant contracts, their interaction is guaranteed to progress or successfully complete. We study two extensions of behavioral contracts, retractable contracts dealing with backtracking and speculative contracts dealing with speculative execution. We show that the two extensions give rise to the same notion of compliance. As a consequence, they also give rise to the same subcontract relation, which determines when one server can be replaced by another preserving compliance. Moreover, compliance and subcontract relation are both decidable in quadratic time. Finally, we study the relationship between retractable contracts and calculi for reversible computing.

[1]  G. Ramalingam,et al.  Safe programmable speculative parallelism , 2010, PLDI '10.

[2]  Ivan Lanese,et al.  Retractable Contracts , 2015, PLACES.

[3]  Alain Laville Comparison of Priority Rules in Pattern Matching and Term Rewriting , 1991, J. Symb. Comput..

[4]  Mariangiola Dezani-Ciancaglini,et al.  Reversible client/server interactions , 2016, Formal Aspects of Computing.

[5]  Iain C. C. Phillips,et al.  Reversing algebraic process calculi , 2007, J. Log. Algebraic Methods Program..

[6]  Christopher D. Carothers,et al.  Efficient optimistic parallel simulations using reverse computation , 1999, Workshop on Parallel and Distributed Simulation.

[7]  Kevin Leyton-Brown,et al.  SATzilla: Portfolio-based Algorithm Selection for SAT , 2008, J. Artif. Intell. Res..

[8]  Ilaria Castellani,et al.  Concurrent Reversible Sessions , 2017, CONCUR.

[9]  Ugo de'Liguoro,et al.  Retractability, games and orchestrators for session contracts , 2017, Log. Methods Comput. Sci..

[10]  Keld Helsgaun,et al.  CBack: A simple tool for backtrack programming in C , 1995, Softw. Pract. Exp..

[11]  Ivan Lanese,et al.  Reversibility in the higher-order π-calculus , 2016, Theor. Comput. Sci..

[12]  Cosimo Laneve,et al.  A Formal Account of Contracts for Web Services , 2006, WS-FM.

[13]  Jan A. Bergstra,et al.  Term-Rewriting Systems with Rule Priorities , 1989, Theor. Comput. Sci..

[14]  Iain C. C. Phillips,et al.  The Meaning of Ordered SOS , 2006, FSTTCS.

[15]  Ivan Lanese,et al.  Concurrent Flexible Reversibility , 2013, ESOP.

[16]  Luca Padovani Contract-based discovery of Web services modulo simple orchestrators , 2010, Theor. Comput. Sci..

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

[18]  Cosimo Laneve,et al.  The must preorder revisited: an algebraic theory for web services contracts , 2007 .

[19]  Matthew Hennessy,et al.  Modelling session types using contracts , 2016, Math. Struct. Comput. Sci..

[20]  Nobuko Yoshida,et al.  Reversible session-based pi-calculus , 2015, J. Log. Algebraic Methods Program..

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

[22]  Ugo de'Liguoro,et al.  Sub-behaviour relations for session-based client/server systems , 2015, Math. Struct. Comput. Sci..

[23]  Benjamin C. Pierce,et al.  Recursive subtyping revealed , 2000, Journal of Functional Programming.

[24]  Ivan Lanese,et al.  Retractable and Speculative Contracts , 2017, COORDINATION.

[25]  Ivan Lanese,et al.  Foundations of Session Types and Behavioural Contracts , 2016, ACM Comput. Surv..

[26]  Matthew Hennessy,et al.  Communicating Transactions - (Extended Abstract) , 2010, CONCUR.

[27]  Cosimo Laneve,et al.  Deadlock detection of Java Bytecode , 2017, LOPSTR.

[28]  Claudio Antares Mezzina,et al.  Causally consistent reversible choreographies: a monitors-as-memories approach , 2017, PPDP.

[29]  Mariangiola Dezani-Ciancaglini,et al.  Compliance for reversible client/server interactions , 2014, BEAT.

[30]  Massimo Bartoletti,et al.  Compliance and Subtyping in Timed Session Types , 2015, FORTE.

[31]  Mariangiola Dezani-Ciancaglini,et al.  Reversible Multiparty Sessions with Checkpoints , 2016, EXPRESS/SOS.

[32]  Ugo de'Liguoro,et al.  Session Types for Orchestrated Interactions , 2017, ICE@DisCoTec.

[33]  Ivan Lanese,et al.  Graceful Interruption of Request-Response Service Interactions , 2011, ICSOC.

[34]  Irek Ulidowski,et al.  Semantics and expressiveness of ordered SOS , 2009, Inf. Comput..

[35]  Sharad Malik,et al.  The Quest for Efficient Boolean Satisfiability Solvers , 2002, CAV.

[36]  Dean M. Tullsen,et al.  Mitosis compiler: an infrastructure for speculative threading based on pre-computation slices , 2005, PLDI '05.

[37]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[38]  Claudio Antares Mezzina,et al.  Reversibility in session-based concurrency: A fresh look , 2017, J. Log. Algebraic Methods Program..

[39]  Vincent Danos,et al.  Reversible Communicating Systems , 2004, CONCUR.

[40]  Matthew Hennessy,et al.  Observing Localities , 1993, Theor. Comput. Sci..

[41]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[42]  Matthew Hennessy,et al.  Using higher-order contracts to model session types , 2016, Log. Methods Comput. Sci..

[43]  Nobuko Yoshida,et al.  Towards Reversible Sessions , 2014, PLACES.

[44]  Ugo de'Liguoro,et al.  Two notions of sub-behaviour for session-based client/server systems , 2010, PPDP.

[45]  Nobuko Yoshida,et al.  Structured Interactional Exceptions in Session Types , 2008, CONCUR.