NREVERSAL of Fortune -- The Thermodynamics of Garbage Collection (1977)
| Venue: | In ACM Sigplan Notices |
| Citations: | 13 - 0 self |
BibTeX
@INPROCEEDINGS{Baker77nreversalof,
author = {Henry G. Baker},
title = {NREVERSAL of Fortune -- The Thermodynamics of Garbage Collection },
booktitle = {In ACM Sigplan Notices},
year = {1977},
pages = {55--59},
publisher = {}
}
OpenURL
Abstract
The need to reverse a computation arises in many contexts---debugging, editor undoing, optimistic concurrency undoing, speculative computation undoing, trace scheduling, exception handling undoing, database recovery, optimistic discrete event simulations, subjunctive computing, etc. The need to analyze a reversed computation arises in the context of static analysis---liveness analysis, strictness analysis, type inference, etc. Traditional means for restoring a computation to a previous state involve checkpoints; checkpoints require time to copy, as well as space to store, the copied material. Traditional reverse abstract interpretation produces relatively poor information due to its inability to guess the previous values of assigned-to variables. We propose an abstract computer model and a programming language---Y-Lisp---whose primitive operations are injective and hence reversible, thus allowing arbitrary undoing without the overheads of checkpointing. Such a computer can be built from reversible conservative logic circuits, with the serendipitous advantage of dissipating far less heat than traditional Boolean AND/OR/NOT circuits. Unlike functional languages, which have one "state " for all times, Y-Lisp has at all times one "state", with unique predecessor and successor states. Compiling into a reversible pseudocode can have benefits even when targeting a traditional computer. Certain optimizations, e.g., update-in-place, and compile-time garbage collection may be more easily performed, because the







