ACM Transactions on Programming Languages and Systems (TOPLAS)
A practical theory of programming
A practical theory of programming
Journal of the ACM (JACM)
Undefined Expressions and Logic in Z and B
Formal Methods in System Design
Acta Informatica
Feynman Lectures on Computation
Feynman Lectures on Computation
On Using Conditional Definitions in Formal Theories
ZB '02 Proceedings of the 2nd International Conference of B and Z Users on Formal Specification and Development in Z and B
Bunches for Object-Oriented, Concurrent, and Real-Time Specification
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume I - Volume I
Reversibility for efficient computing
Reversibility for efficient computing
Theory of Self-Reproducing Automata
Theory of Self-Reproducing Automata
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 prospective-value semantics for the GSL
ZB'05 Proceedings of the 4th international conference on Formal Specification and Development in Z and B
A Virtual Machine for Supporting Reversible Probabilistic Guarded Command Languages
Electronic Notes in Theoretical Computer Science (ENTCS)
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 investigate, within the UTP framework of Hoare He Designs, the effect of seeing computation as an essentially reversible process. We describe the theoretical link between reversibility and the minimum power requirements of a computation, and we review Zuliani’s work on Reversible Probabilistic Guarded Command Language. We propose an alternative formalisation of reversible computing which accommodates backtracking. To obtain a basic backtracking language able to search for a single result we exploit the already recognised properties of non-deterministic choice, using it as provisional choice rather than implementor’s choice. We add a “prospective values” formalism which can describe programs that return all the possible results of a search, and we show how to formally describe the premature termination of such a search, a mechanism analogous to the “cut” of Prolog. An appendix describes some aspects of the wp calculus in terms of Designs, as needed for our proofs. Support for the programming structures described has been incorporated in a reversible virtual machine for i386 platforms with Posix compatibility.