ABSTRACT

At the lowest level of execution, the set of instructions provided by the computer architecture plays an important role in reversibility. Most conventional instruction sets are designed for forward-only execution. As a result, program execution cannot be reversed at the hardware level even if the program itself happens to be reversible at the software level. To enable reversibility natively, the instruction set itself must provide reversible primitives by design, to which compilers or program writers can target their code generation to develop reversible executables.