Modern Compiler Implementation: In ML
Modern Compiler Implementation: In ML
Reversibility for efficient computing
Reversibility for efficient computing
Reversible computer engineering and architecture
Reversible computer engineering and architecture
What Computing is all About
A reversible programming language and its invertible self-interpreter
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Principles of a reversible programming language
Proceedings of the 5th conference on Computing frontiers
Reversible Flowchart Languages and the Structured Reversible Program Theorem
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
Irreversibility and heat generation in the computing process
IBM Journal of Research and Development
Logical reversibility of computation
IBM Journal of Research and Development
Reversible Computing: Fundamentals, Quantum Computing, and Applications
Reversible Computing: Fundamentals, Quantum Computing, and Applications
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
Reversible machine code and its abstract processor architecture
CSR'07 Proceedings of the Second international conference on Computer Science: theory and applications
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
A simple and efficient universal reversible turing machine
LATA'11 Proceedings of the 5th international conference on Language and automata theory and applications
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
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
Reversible representation and manipulation of constructor terms in the heap
RC'13 Proceedings of the 5th international conference on Reversible Computation
Hi-index | 0.00 |
We describe the translation techniques used for the code generation in a compiler from the high-level reversible imperative programming language Janus to the low-level reversible assembly language PISA. Our translation is both semantics preserving (correct), in that target programs compute exactly the same functions as their source programs (cleanly, with no extraneous garbage output), and efficient, in that target programs conserve the complexities of source programs. In particular, target programs only require a constant amount of temporary garbage space. The given translation methods are generic, and should be applicable to any (imperative) reversible source language described with reversible flowcharts and reversible updates. To our knowledge, this is the first compiler between reversible languages where the source and target languages were independently developed; the first exhibiting both correctness and efficiency; and just the second compiler for reversible languages overall.