Causal-Consistent Reversibility

Reversible computing allows one to execute programs both in the standard, forward direction, and backward, going back to past states. In a concurrent scenario, the correct notion of reversibility is causal-consistent reversibility: any action can be undone, provided that all its consequences (if any) are undone beforehand. In this paper we present an overview of the main approaches, results, and applications of causal-consistent reversibility.

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

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

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

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

[5]  Ursula Goltz,et al.  Refinement of actions and equivalence notions for concurrent systems , 2001, Acta Informatica.

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

[7]  Vincent Danos,et al.  On the Statistical Thermodynamics of Reversible Communicating Processes , 2011, CALCO.

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

[9]  Samuel T. King,et al.  Debugging Operating Systems with Time-Traveling Virtual Machines (Awarded General Track Best Paper Award!) , 2005, USENIX Annual Technical Conference, General Track.

[10]  Vincent Danos,et al.  Formal Molecular Biology done in CCS , 2003 .

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

[12]  Matthew Hennessy,et al.  Communicating transactions , 2010, CONCUR 2010.

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

[14]  Robin Milner,et al.  Algebraic laws for nondeterminism and concurrency , 1985, JACM.

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

[16]  Glynn Winskel,et al.  Event Structures , 1986, Advances in Petri Nets.

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

[18]  Irek Ulidowski,et al.  A hierarchy of reverse bisimulations on stable configuration structures , 2012, Mathematical Structures in Computer Science.

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

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

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

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

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

[24]  Ivan Lanese,et al.  Controlled Reversibility and Compensations , 2012, RC.

[25]  Kwang-Hyun Cho,et al.  Mathematical Modeling of the Influence of RKIP on the ERK Signaling Pathway , 2003, CMSB.

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

[27]  Irek Ulidowski,et al.  Concurrency and Reversibility , 2014, RC.

[28]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[29]  Luca Cardelli,et al.  A programming language for composable DNA circuits , 2009, Journal of The Royal Society Interface.

[30]  Mark S. Miller,et al.  Causeway: a message-oriented distributed debugger , 2009 .

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

[32]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[33]  Jean Krivine,et al.  A Verification Technique for Reversible Process Algebra , 2012, RC.

[34]  Ralph Grishman,et al.  The debugging system AIDS , 1899, AFIPS '70 (Spring).

[35]  Jan A. Bergstra,et al.  Process Algebra for Synchronous Communication , 1984, Inf. Control..

[36]  Irek Ulidowski,et al.  Modelling of Bonding with Processes and Events , 2013, RC.

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

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

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

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

[41]  Joe Armstrong,et al.  Making reliable distributed systems in the presence of software errors , 2003 .

[42]  R. Landauer,et al.  Irreversibility and heat generation in the computing process , 1961, IBM J. Res. Dev..

[43]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[44]  Aviv Regev,et al.  Representation and Simulation of Biochemical Processes Using the pi-Calculus Process Algebra , 2000, Pacific Symposium on Biocomputing.

[45]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

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

[47]  Glynn Winskel,et al.  Bisimulation from Open Maps , 1994, Inf. Comput..

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

[49]  James E. Ferrell,et al.  Mechanisms of specificity in protein phosphorylation , 2007, Nature Reviews Molecular Cell Biology.

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

[51]  Gene Cooperman,et al.  Temporal Debugging using URDB , 2009, ArXiv.

[52]  Mogens Nielsen,et al.  Bisimulation for Models in Concurrency , 1994, CONCUR.

[53]  Vincent Danos,et al.  Self-assembling Trees , 2007, Electron. Notes Theor. Comput. Sci..

[54]  Gene Cooperman,et al.  Semi-automated debugging via binary search through a process lifetime , 2013, PLOS '13.

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