Reversible computing platform

compiler-theory, functional-programming, programming-languages, runtime

Solution

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.

Problem

From the Reversible Computing FAQ: Achieving the maximum possible computational performance for a given rate of bit dissipation generally requires explicit reversibility not only at the lowest level, but at all levels of computing--in devices, circuits, architectures, languages, and algorithms (a strongly conjectured, but not yet formally proven result-call it Frank's Law). As I understand it, energy is lost is generated when bits are zeroed. Heat production can be reduced if the software and hardware platform have the ability to reverse logical operations. Is there any programming platform (library, runtime, language, and compiler) that supports reversible computing?

Original source

Related problems