Time/space trade-offs for reversible computation
SIAM Journal on Computing
A note on Bennett's time space tradeoff for reversible computation
SIAM Journal on Computing
Feynman, Barton and the reversible Schrödinger difference equation
Feynman and computation
On reversible subroutines and computers that run backwards
Communications of the ACM
Introduction to Algorithms
Proceedings of the 7th Colloquium on Automata, Languages and Programming
Principles of inverse computation and the Universal resolving algorithm
The essence of computation
Reversibility for efficient computing
Reversibility for efficient computing
Reversible computing: from mathematical group theory to electronical circuit experiment
Proceedings of the 2nd conference on Computing frontiers
Introduction to reversible computing: motivation, progress, and challenges
Proceedings of the 2nd conference on Computing frontiers
Time, space, and energy in reversible computing
Proceedings of the 2nd conference on Computing frontiers
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
A reversible programming language and its invertible self-interpreter
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A universal reversible turing machine
MCU'07 Proceedings of the 5th international conference on Machines, computations, and universality
Partial inversion of constructor term rewriting systems
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Semi-inversion of guarded equations
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Integer fast Fourier transform
IEEE Transactions on Signal Processing
Reversible machine code and its abstract processor architecture
CSR'07 Proceedings of the Second international conference on Computer Science: theory and applications
Reversible Flowchart Languages and the Structured Reversible Program Theorem
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
Parallel Optimization of a Reversible (Quantum) Ripple-Carry Adder
UC '08 Proceedings of the 7th international conference on Unconventional Computing
Bidirectional Transformations: A Cross-Discipline Perspective
ICMT '09 Proceedings of the 2nd International Conference on Theory and Practice of Model Transformations
Robust and reversible self-reconfiguration
IROS'09 Proceedings of the 2009 IEEE/RSJ international conference on Intelligent robots and systems
A Virtual Machine for Supporting Reversible Probabilistic Guarded Command Languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Reversible Computation and Reversible Programming Languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Partial evaluation of the reversible language janus
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
What do reversible programs compute?
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Clean translation of an imperative reversible programming language
CC'11/ETAPS'11 Proceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software
A simple and efficient universal reversible turing machine
LATA'11 Proceedings of the 5th international conference on Language and automata theory and applications
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards a reversible functional language
RC'11 Proceedings of the Third international conference on Reversible Computation
A reversible processor architecture and its reversible logic design
RC'11 Proceedings of the Third international conference on Reversible Computation
Partial evaluation of janus part 2: assertions and procedures
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Synthesis and optimization of reversible circuits—a survey
ACM Computing Surveys (CSUR)
Reversible representation and manipulation of constructor terms in the heap
RC'13 Proceedings of the 5th international conference on Reversible Computation
White dots do matter: rewriting reversible logic circuits
RC'13 Proceedings of the 5th international conference on Reversible Computation
Hi-index | 0.00 |
The principles of reversible programming languages are explicated and illustrated with reference to the design of a high-level imperative language, Janus. The fundamental properties for such languages include backward as well as forward determinism and reversible updates of data. The unique design features of the language include explicit post-condition assertions, direct access to an inverse semantics and the possibility of clean ({\ie}, garbage-free) computation of injective functions. We suggest the clean simulation of reversible Turing machines as a criterion for computing strength of reversible languages, and demonstrate this for Janus. We show the practicality of the language by implementation of a reversible fast Fourier transform. Our results indicate that the reversible programming paradigm has fundamental properties that are relevant to many different areas of computer science.