A formal approach to undo operations in programming languages
- 2 January 1986
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 8 (1) , 50-87
- https://doi.org/10.1145/5001.5005
Abstract
A framework is presented for adding a general Undo facility to programming languages. A discussion of relevant literature is provided to show that the idea of Undoing pervades several areas in computer science, and even other disciplines. A simple model of computation is introduced, and it is augmented with a minimal amount of additional structure needed for recovery and reversal. Two different interpretations of Undo are motivated with examples. Then, four primitives are defined in a language-independent manner; they are sufficient to support a wide range of Undo capability. Two of these primitives carry out state saving, and the others mirror the two versions of the Undo operation. Properties of and relationships between these primitives are explored, and there are some preliminary remarks on how one could implement a system based on this formalism. The main conclusion is that the notions of recovery and reversal of actions can become part of the programming process.Keywords
This publication has 23 references indexed in Scilit:
- User Recovery and Reversal in Interactive SystemsACM Transactions on Programming Languages and Systems, 1984
- US&RPublished by Association for Computing Machinery (ACM) ,1984
- The thermodynamics of computation—a reviewInternational Journal of Theoretical Physics, 1982
- Conservative logicInternational Journal of Theoretical Physics, 1982
- Generators in IconACM Transactions on Programming Languages and Systems, 1981
- An experimental program transformation and synthesis systemArtificial Intelligence, 1981
- Recovery Techniques for Database SystemsACM Computing Surveys, 1978
- Nondeterministic AlgorithmsJournal of the ACM, 1967
- Backtrack ProgrammingJournal of the ACM, 1965
- The Inversion of Functions Defined by Turing MachinesPublished by Walter de Gruyter GmbH ,1956