Reversibility in the higher-order π-calculus

The notion of reversible computation is attracting increasing interest because of its applications in diverse fields, in particular the study of programming abstractions for reliable systems. In this paper, we continue the study undertaken by Danos and Krivine on reversible CCS by defining a reversible higher-order π-calculus, called rho π . We prove that reversibility in our calculus is causally consistent and that the causal information used to support reversibility in rho π is consistent with the one used in the causal semantics of the π-calculus developed by Boreale and Sangiorgi. Finally, we show that one can faithfully encode rho π into a variant of higher-order π, substantially improving on the result we obtained in the conference version of this paper.

[1]  Davide Sangiorgi,et al.  A fully abstract semantics for causality in the $\pi$-calculus , 1998, Acta Informatica.

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

[3]  Jean-Jacques Lévy,et al.  An Algebraic Interpretation of the lambda beta K-Calculus; and an Application of a Labelled lambda -Calculus , 1976, Theor. Comput. Sci..

[4]  Robert Glück,et al.  Principles of a reversible programming language , 2008, CF '08.

[5]  Vincent Danos,et al.  Reversible, Irreversible and Optimal lambda-Machines , 1999, Theor. Comput. Sci..

[6]  Robin Milner,et al.  Functions as processes , 1990, Mathematical Structures in Computer Science.

[7]  Cédric Fournet,et al.  The reflexive CHAM and the join-calculus , 1996, POPL '96.

[8]  Cédric Fournet,et al.  The Join Calculus: A Language for Distributed Mobile Programming , 2000, APPSEM.

[9]  Rocco De Nicola,et al.  KLAIM: A Kernel Language for Agents Interaction and Mobility , 1998, IEEE Trans. Software Eng..

[10]  Corrado Priami,et al.  Non-Interleaving Semantics for Mobile Processes , 1999, Theor. Comput. Sci..

[11]  Ichiro Hasuo,et al.  Generic Forward and Backward Simulations , 2006, CONCUR.

[12]  Éric Tanter,et al.  Back to the Future: Omniscient Debugging , 2009, IEEE Software.

[13]  Ivan Lanese,et al.  Causal-Consistent Reversible Debugging , 2014, FASE.

[14]  Rocco De Nicola,et al.  Back and Forth Bisimulations , 1990, CONCUR.

[15]  Thomas J. LeBlanc,et al.  Debugging Parallel Programs with Instant Replay , 1987, IEEE Transactions on Computers.

[16]  Daniele Varacca,et al.  Event Structure Semantics of Parallel Extrusion in the Pi-Calculus , 2012, FoSSaCS.

[17]  Benjamin C. Pierce,et al.  Combinators for bi-directional tree transformations: a linguistic approach to the view update problem , 2005, POPL '05.

[18]  Robert Glück,et al.  Reversible Flowchart Languages and the Structured Reversible Program Theorem , 2008, ICALP.

[19]  Irek Ulidowski,et al.  A Logic with Reverse Modalities for History-preserving Bisimulations , 2011, EXPRESS.

[20]  Marvin V. Zelkowitz Reversible execution , 1973, CACM.

[21]  Samson Abramsky,et al.  A Structural Approach to Reversible Computation , 2005, Theor. Comput. Sci..

[22]  Cosimo Laneve,et al.  Reversible structures , 2011, CMSB.

[23]  Stuart I. Feldman,et al.  IGOR: a system for program debugging via reversible execution , 1988, PADD '88.

[24]  Robert Glück,et al.  Towards a Reversible Functional Language , 2011, RC.

[25]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[26]  Ivan Lanese,et al.  Causal-Consistent Reversibility , 2014, Bull. EATCS.

[27]  Daniele Varacca,et al.  Typed event structures and the linear pi-calculus , 2010, Theor. Comput. Sci..

[28]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[29]  Ivan Lanese,et al.  Causal-Consistent Reversibility in a Tuple-Based Language , 2015, 2015 23rd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[30]  Vincent Danos,et al.  General Reversibility , 2006, EXPRESS.

[31]  Davide Sangiorgi,et al.  Expressing mobility in process algebras : first-order and higher-order paradigms , 1993 .

[32]  Werner E. Kluge,et al.  A Reversible SE(M)CD Machine , 1999, IFL.

[33]  Robert Balzer,et al.  EXDAMS: extendable debugging and monitoring system , 1969, AFIPS '69 (Spring).

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

[35]  Ivan Lanese,et al.  Controlling Reversibility in Higher-Order Pi , 2011, CONCUR.

[36]  Daniele Varacca,et al.  A Compositional Semantics for the Reversible p-Calculus , 2013, 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science.

[37]  Ivan Lanese,et al.  Reversing Higher-Order Pi , 2010, CONCUR.

[38]  Vincent Danos,et al.  Transactions in RCCS , 2005, CONCUR.

[39]  Alan Schmitt,et al.  The m-calculus: a higher-order distributed process calculus , 2003, POPL '03.

[40]  Peter G. Bishop Using reversible computing to achieve fail-safety , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[41]  Iain C. C. Phillips,et al.  Reverse Bisimulations on Stable Configuration Structures , 2009, SOS.

[42]  Amr Sabry,et al.  Information effects , 2012, POPL '12.

[43]  Davide Sangiorgi,et al.  Bisimulation for Higher-Order Process Calculi , 1994, Inf. Comput..

[44]  Irek Ulidowski,et al.  Reversibility and Asymmetric Conflict in Event Structures , 2013, CONCUR.

[45]  Tankut Akgul Assembly instruction level reverse execution for debugging , 2004, TSEM.

[46]  Alan Schmitt,et al.  Normal Bisimulations in Calculi with Passivation , 2009, FoSSaCS.

[47]  Vincent Danos,et al.  Formal Molecular Biology Done in CCS-R , 2007, Electron. Notes Theor. Comput. Sci..

[48]  Davide Sangiorgi,et al.  From λ to π; or, Rediscovering continuations , 1999, Mathematical Structures in Computer Science.

[49]  Ivan Lanese,et al.  A Reversible Abstract Machine and Its Space Overhead , 2012, FMOODS/FORTE.

[50]  Ralf Lämmel,et al.  Bidirectional Transformations: A Cross-Discipline Perspective , 2009, ICMT@TOOLS.

[51]  Nancy A. Lynch,et al.  Forward and Backward Simulations: I. Untimed Systems , 1995, Inf. Comput..

[52]  Paul M. B. Vitányi Time, space, and energy in reversible computing , 2005, CF '05.

[53]  Robert Glück,et al.  A reversible programming language and its invertible self-interpreter , 2007, PEPM '07.

[54]  Robert Glück,et al.  Principles of Inverse Computation and the Universal Resolving Algorithm , 2002, The Essence of Computation.

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

[56]  Frank Piessens,et al.  Failboxes: Provably Safe Exception Handling , 2009, ECOOP.

[57]  Harry Buhrman,et al.  Time and Space Bounds for Reversible Simulation , 2001, ICALP.

[58]  Bob Boothe Efficient algorithms for bidirectional debugging , 2000, PLDI '00.

[59]  Shin-Cheng Mu,et al.  An Injective Language for Reversible Computation , 2004, MPC.

[60]  Jonathan J. Cook Reverse Execution of Java Bytecode , 2002, Comput. J..

[61]  Charles H. Bennett Notes on the history of reversible computation , 2000, IBM J. Res. Dev..

[62]  Kenichi Morita,et al.  Reversible computing and cellular automata - A survey , 2008, Theor. Comput. Sci..

[63]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[64]  Daniele Varacca,et al.  Compositional Event Structure Semantics for the Internal pi -Calculus , 2007, CONCUR.

[65]  Marc H. Scholl,et al.  Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery , 2001, SGMD.

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

[67]  Irek Ulidowski,et al.  A Reversible Process Calculus and the Modelling of the ERK Signalling Pathway , 2012, RC.

[68]  Robert Lynas,et al.  A Virtual Machine for Supporting Reversible Probabilistic Guarded Command Languages , 2010, Electron. Notes Theor. Comput. Sci..

[69]  George B. Leeman A formal approach to undo operations in programming languages , 1986, TOPL.

[70]  Charles H. Bennett,et al.  Logical reversibility of computation , 1973 .

[71]  Nancy A. Lynch,et al.  Forward and Backward Simulations, II: Timing-Based Systems , 1996, Inf. Comput..

[72]  Michael P. Frank,et al.  Introduction to reversible computing: motivation, progress, and challenges , 2005, CF '05.

[73]  Peter Sewell,et al.  Models for name-passing processes: interleaving and causal , 2004, Inf. Comput..

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

[75]  Fred B. Schneider,et al.  Proving Nondeterministically Specified Safety Properties Using Progress Measures , 1993, Inf. Comput..

[76]  Jonathan Grattage A functional quantum programming language , 2005, 20th Annual IEEE Symposium on Logic in Computer Science (LICS' 05).