A formal approach to undo operations in programming languages

  • Authors:
  • George B. Leeman, Jr.

  • Affiliations:
  • IBM Corporate Headquarters, Armonk, NY

  • Venue:
  • ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
  • Year:
  • 1986

Quantified Score

Hi-index 0.00

Visualization

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.