There is a programming language that is reversible: Janus [1]. You could write a (lossless) data compression algorithm in this language, and if run in reverse this would uncompress. In theory you could do all types of computation, but the "output" (when run forward) would need to contain the old state. With reversible computing, there is no erased information. Landauer's principle links information theory with thermo…
Tofolli gates are all you need
21–30 of 45 posts
Re: Tofolli gates are all you need
#22There is a programming language that is reversible: Janus [1]. You could write a (lossless) data compression algorithm in this language, and if run in reverse this would uncompress. In theory you could do all types of computation, but the "output" (when run forward) would need to contain the old state. With reversible computing, there is no erased information. Landauer's principle links information theory with thermo…
Could you really do general compression in this language? I was under the impression that the output is always the same size or larger than the input.
Maybe you meant sorting. You can implement sorting algorithms, as long as you store the information which entries were swapped. (To "unsort" the entries when running in reverse). So, an array that is already sorted doesn't need much additional information; one that is unsorted will require a lot of "undo" space. I think this is the easiest example to see the relation between reversible computing and thermodynamics: in thermodynamics, to bring "order" to a system requires "unorder" (heat) somewhere else.
There are also examples for encryption / decryption, but I find compression and sorting more interesting.
Re: Tofolli gates are all you need
#23There is a programming language that is reversible: Janus [1]. You could write a (lossless) data compression algorithm in this language, and if run in reverse this would uncompress. In theory you could do all types of computation, but the "output" (when run forward) would need to contain the old state. With reversible computing, there is no erased information. Landauer's principle links information theory with thermo…
Could you really do general compression in this language? I was under the impression that the output is always the same size or larger than the input.
Re: Tofolli gates are all you need
#24Earlier quoted context omitted.
Could you really do general compression in this language? I was under the impression that the output is always the same size or larger than the input.
You could package all your data into a zip using this language but you would also have a worthless stretch of memory seemingly filled with noise / things you’re not interested in.
Re: Tofolli gates are all you need
#25*Toffoli
Sounds like a type of pasta
Re: Tofolli gates are all you need
#26There is a programming language that is reversible: Janus [1]. You could write a (lossless) data compression algorithm in this language, and if run in reverse this would uncompress. In theory you could do all types of computation, but the "output" (when run forward) would need to contain the old state. With reversible computing, there is no erased information. Landauer's principle links information theory with thermo…
Assuming that the Many-Worlds interpretation is true.
Re: Tofolli gates are all you need
#27There is a programming language that is reversible: Janus [1]. You could write a (lossless) data compression algorithm in this language, and if run in reverse this would uncompress. In theory you could do all types of computation, but the "output" (when run forward) would need to contain the old state. With reversible computing, there is no erased information. Landauer's principle links information theory with thermo…
> The universe is just one gigantic reversible computation. Assuming that the Many-Worlds interpretation is true.
Re: Tofolli gates are all you need
#28There is a programming language that is reversible: Janus [1]. You could write a (lossless) data compression algorithm in this language, and if run in reverse this would uncompress. In theory you could do all types of computation, but the "output" (when run forward) would need to contain the old state. With reversible computing, there is no erased information. Landauer's principle links information theory with thermo…
> The universe is just one gigantic reversible computation. Assuming that the Many-Worlds interpretation is true.
Re: Tofolli gates are all you need
#29Earlier quoted context omitted.
> The universe is just one gigantic reversible computation. Assuming that the Many-Worlds interpretation is true.
Actually this is true whichever interpretation you take, give or take some knowledge around black holes. I think hawking actually proved that this is true regardless of how black holes work due to hawking radiation.
In the Copenhagen interpretation the collapse of the wave function explicitly violates unitarity (and thus reversibility).
Re: Tofolli gates are all you need
#30Earlier quoted context omitted.
> Reversing here just means yielding back the inputs. Not quite I think - the example gate they give has (a,b,c) as input and it doesn't return c. So it's not yielding all the inputs back. Furthermore: if you always returned all the inputs, and also computed other values, the outputs from the gates would be strictly increasing in size, so you wouldn't be able to use a finite set of gates to build a computer of arbitr…
c is the constant 1. You don't need to store that. > Furthermore [this doesn't scale]. Precisely. https://en.wikipedia.org/wiki/Toffoli_gate has better details.