Linear logic and permutation stacks—the Forth shall be first
ACM SIGARCH Computer Architecture News - Special issue: panel sessions of the 1991 workshop on multithreaded computers
NREVERSAL of Fortune - The Thermodynamics of Garbage Collection
IWMM '92 Proceedings of the International Workshop on Memory Management
Abstraction, Refinement And Proof For Probabilistic Systems (Monographs in Computer Science)
Abstraction, Refinement And Proof For Probabilistic Systems (Monographs in Computer Science)
A reversible programming language and its invertible self-interpreter
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Principles of a reversible programming language
Proceedings of the 5th conference on Computing frontiers
Irreversibility and heat generation in the computing process
IBM Journal of Research and Development
IBM Journal of Research and Development
Logical reversibility of computation
IBM Journal of Research and Development
A design-based model of reversible computation
UTP'06 Proceedings of the First international conference on Unifying Theories of Programming
A prospective-value semantics for the GSL
ZB'05 Proceedings of the 4th international conference on Formal Specification and Development in Z and B
Reversible machine code and its abstract processor architecture
CSR'07 Proceedings of the Second international conference on Computer Science: theory and applications
Preference and non-deterministic choice
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Probabilistic choice, reversibility, loops, and miracles
UTP'10 Proceedings of the Third international conference on Unifying theories of programming
Hi-index | 0.00 |
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.