A Virtual Machine for Supporting Reversible Probabilistic Guarded Command Languages

We describe a reversible stack based virtual machine designed as an execution platform for a sequential programming language used in a formal development environment. We revoke Dijkstra's ''law of the excluded miracle'' to obtain a formal description of backtracking through the use of naked guarded commands and non-deterministic choice, with an operational interpretation of the interaction between guards and choice provided by reversibility. Other constructs supported by the machine provide for the collection of all results of a search, a semantically clean ''cut'' which terminates a search when the accumulated results satisfy some given criteria, and forms of probabilistic choice, which we distinguish from non-deterministic choice. The paper includes a number of example programs.

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

[2]  Frank Zeyda,et al.  A unification of probabilistic choice within a design-based model of reversible computation , 2007, Formal Aspects of Computing.

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

[4]  Robert Glück,et al.  Reversible Machine Code and Its Abstract Processor Architecture , 2007, CSR.

[5]  Paolo Zuliani Logical reversibility , 2001, IBM J. Res. Dev..

[6]  Lei Qian,et al.  Thermodynamics of Computation , 2009, Encyclopedia of Complexity and Systems Science.

[7]  Frank Zeyda,et al.  A Prospective-Value Semantics for the GSL , 2005, ZB.

[8]  Henry G. Baker,et al.  Linear logic and permutation stacks—the Forth shall be first , 1994, CARN.

[9]  Charles H. Bennett,et al.  The thermodynamics of computation—a review , 1982 .

[10]  Robert Lynas,et al.  A Design-Based Model of Reversible Computation , 2006, UTP.

[11]  Henry G. Baker,et al.  NREVERSAL of Fortune - The Thermodynamics of Garbage Collection , 1992, IWMM.

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

[13]  Michael Leuschel,et al.  Efficient and flexible access control via logic program specialisation , 2004, PEPM '04.

[14]  Annabelle McIver,et al.  Abstraction, Refinement and Proof for Probabilistic Systems , 2004, Monographs in Computer Science.

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

[16]  Frank Waters,et al.  The B Book , 1971 .