Reverse computation

Reverse computation is a software application of the concept of reversible computing.

Because it offers a possible solution to the heat problem faced by chip manufacturers, reversible computing has been extensively studied in the area of computer architecture. The promise of reversible computing is that the amount of heat loss for reversible architectures would be minimal for significantly large numbers of transistors.[1][2] Rather than creating entropy (and thus heat) through destructive operations, a reversible architecture conserves the energy by performing other operations that preserve the system state.[3][4]

The concept of reverse computation is somewhat simpler than reversible computing in that reverse computation is only required to restore the equivalent state of a software application, rather than support the reversibility of the set of all possible instructions. Reversible computing concepts have been successfully applied as reverse computation in software application areas such as database design,[5] checkpointing and debugging,[6] and code differentiation.[7][8]

  1. ^ Landauer, Rolf (July 1961). "Irreversibility and heat generation in the computing process". IBM Journal of Research and Development. 5 (3): 183–191. CiteSeerX 10.1.1.68.7646. doi:10.1147/rd.53.0183.
  2. ^ Von Neumann, John (1966). Theory of Self-Reproducing Automata. University of Illinois Press. p. 388. Retrieved 2009-04-06.
  3. ^ Bennett, Charles H. (1982). "The thermodynamics of computation—a review" (PDF). International Journal of Theoretical Physics. 21 (12): 905–940. Bibcode:1982IJTP...21..905B. CiteSeerX 10.1.1.655.5610. doi:10.1007/BF02084158. S2CID 17471991. Retrieved 2009-04-06.
  4. ^ Frank, Michael P. (June 1999). Reversibility for efficient computing, Ph.D. Thesis (PDF). Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science. Retrieved 2009-04-06.
  5. ^ Leeman Jr., George B. (1986). "A formal approach to undo operations in programming languages". ACM Transactions on Programming Languages and Systems. 8 (1): 50–87. doi:10.1145/5001.5005.
  6. ^ Biswas, Bitan; Mall, R. (1999). "Reverse execution of programs". ACM SIGPLAN Notices. 34 (4): 61–69. doi:10.1145/312009.312079. S2CID 11685971.
  7. ^ Griewank, Andreas; Juedes, David; Utke, Jean (1996). "Algorithm 755: Adolc: a package for the automatic differentiation of algorithms written in c/c++". ACM Transactions on Mathematical Software. 22 (2): 131–167. doi:10.1145/229473.229474. S2CID 7339428.
  8. ^ Grimm, J; Pottier, L.; Rostaing-Schmidt, N. (1996). "Optimal time and minimum space-time product for reversing a certain class of programs" (PDF). Technical Report.

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search