Reversible computing platform
Yes, there are some reversible programming languages, at least in research.
I'm also intersted in this field, and I have a collection of few pointers. These two papers are pretty cool:
- Principles of a reversible programming language
- A reversible programming language and its invertible self-interpreter
Those ones I haven't read yet (but are in my todo list) and seem interesting:
- information effects
- Invertible Syntax Descriptions-Unifying Parsing and pretty printing
- An Injective Language for Reversible Computation
There's also this thread on hacker news.
There's a richer literature on bidirectional transformations (of code, models, data structure, etc.), that is to some extend related to reversible computing.
As far as I understand, for truly reversible computing, we'll need to run algorithms on a reversible computer. Just quoting the following link:
Reversible Computer : A computer in which all chips and circuits perform reversible functions with no transfer of heat to or from their surroundings. In the 1990s, a group at MIT built preliminary hardware proving such “adiabatic” computing possible.
Ref: http://energy.mit.edu/news/energy-efficient-computing/
There are various implementations of reversible parsers in Prolog and other languages. Because Prolog allows reversible computations, it is possible to implement an interpreter for the Janus programming language in Prolog.