Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reversible computing platform

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?

like image 461
Anthony Faull Avatar asked Apr 25 '12 10:04

Anthony Faull


People also ask

What is reverse computing?

Reverse computation is a software application of the concept of reversible computing. Because it offers a possible solution to the heat problem faced by chip manufacturers, reversible computing has been extensively studied in the area of computer architecture.

Is reversible computing possible?

Physicist Richard Feynman showed that it is theoretically possible to create an adiabatic reversible computer. Feynman took an interest in reversible computing in the 1970s because he wanted to know whether there is a fundamental lower limit to how much energy is needed to carry out a computation.

Is quantum computing reversible?

Reversible computing is a form of unconventional computing. Due to the unitarity of quantum mechanics, quantum circuits are reversible, as long as they do not "collapse" the quantum states they operate on.

Which operators are reversible?

This property then tells us that all quantum gates must be implemented as a unitary operator which makes them reversible. Any quantum gate must thus be implemented as a unitary operator and is therefore reversible.


1 Answers

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.

like image 65
ewernli Avatar answered Oct 14 '22 07:10

ewernli