Programming
Open Source
You can write and run reversible programs today. These are the languages whose execution is deterministic both forwards and backwards, plus the reverse-debuggers that let ordinary code be stepped in reverse. All are free to try.
Janus →
The first reversible imperative programming language; it runs deterministically forwards and backwards, with online interpreters available.
DIKU PIRC · reversible language
RFun →
An untyped, first-order reversible functional language, with a Haskell interpreter available on GitHub.
DIKU PIRC · reversible language
CoreFun →
A typed reversible functional core language whose type system statically guarantees reversibility.
DIKU · reversible language
Hermes →
A reversible language for lightweight encryption: write the cipher once and get decryption for free by running it backwards.
reversible language
Mozilla rr →
A record-and-replay reverse debugger offering deterministic replay and reverse execution under gdb.
Mozilla · reverse debugger
GDB reverse debugging →
Official GNU reverse execution: reverse-continue, reverse-step and friends, to walk a program backwards.
GNU Project · reverse debugger
RevKit →
A toolkit for reversible and quantum logic synthesis.
synthesis toolkit
Pendulum / PISA →
An early reversible instruction-set architecture and processor design.
reversible ISA
Where much of this comes from
A great deal of reversible-language research, including Janus, RFun and CoreFun, comes from the DIKU PIRC group at the University of Copenhagen.