PECAN: Program Development Systems that Support Multiple Views
IEEE Transactions on Software Engineering
Pascal user manual and report; 3rd ed.
Pascal user manual and report; 3rd ed.
The C programming language
Journal of the ACM (JACM)
Journal of the ACM (JACM)
Recovery Techniques for Database Systems
ACM Computing Surveys (CSUR)
ACM Transactions on Programming Languages and Systems (TOPLAS)
User Recovery and Reversal in Interactive Systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Software Tools in Pascal
Database Security and Integrity
Database Security and Integrity
The implementation of Etude, an integrated and interactive document production system
Proceedings of the ACM SIGPLAN SIGOA symposium on Text manipulation
The design of an integrated, interactive and incremental programming environment
ICSE '82 Proceedings of the 6th international conference on Software engineering
Graphical program development with PECAN program development systems
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
US&R: A new framework for redoing (Extended Abstract)
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
The CORE User Interface
COPE: A Cooperative Programming Environment
COPE: A Cooperative Programming Environment
User Recovery and Reversal in Interactive Systems
User Recovery and Reversal in Interactive Systems
AN EASE OF USE EVALUATION OF AN INTEGRATED EDITOR AND
AN EASE OF USE EVALUATION OF AN INTEGRATED EDITOR AND
LISP 1.5 Programmer's Manual
A new conceptual model for interactive user recovery and command reuse facilities
CHI '88 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Demonic memory for process histories
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
History cache: hardware support for reverse execution
ACM SIGARCH Computer Architecture News
A selective undo mechanism for graphical user interfaces based on command objects
ACM Transactions on Computer-Human Interaction (TOCHI)
An approach to support automatic generation of user interfaces
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient optimistic parallel simulations using reverse computation
PADS '99 Proceedings of the thirteenth workshop on Parallel and distributed simulation
Efficient optimistic parallel simulations using reverse computation
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Reversible Debugging Using Program Instrumentation
IEEE Transactions on Software Engineering
Proceedings of the 35th conference on Winter simulation: driving innovation
A general multi-user undo/redo model
ECSCW'95 Proceedings of the fourth conference on European Conference on Computer-Supported Cooperative Work
Proceedings of the 21st International Workshop on Principles of Advanced and Distributed Simulation
An Experimental Analysis of Undo in Ubiquitous Computing Environments
UIC '08 Proceedings of the 5th international conference on Ubiquitous Intelligence and Computing
Controlling reversibility in higher-order Pi
CONCUR'11 Proceedings of the 22nd international conference on Concurrency theory
A reversible abstract machine and its space overhead
FMOODS'12/FORTE'12 Proceedings of the 14th joint IFIP WG 6.1 international conference and Proceedings of the 32nd IFIP WG 6.1 international conference on Formal Techniques for Distributed Systems
Concurrent flexible reversibility
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Supporting undo and redo in scientific data analysis
TaPP'13 Proceedings of the 5th USENIX conference on Theory and Practice of Provenance
Supporting undo and redo in scientific data analysis
Proceedings of the 5th USENIX Workshop on the Theory and Practice of Provenance
Supporting process undo and redo in software engineering decision making
Proceedings of the 2013 International Conference on Software and System Process
Hi-index | 0.00 |
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.