<blockquote>
<p>energy is lost is generated when bits are zeroed</p>
</blockquote>
<p>Any irreversible process (i.e. process that lost information) accompanies energy dissipation. For example, the <code>x^2</code> function is not reversible since it is not a bijection, to implement this function, you should either</p>
<ul>
<li>erase some information and dissipate a certain amount of energy,</li>
<li>or implement (x, 0) -&gt; (x, x^2) instead.</li>
</ul>
<blockquote>
<p>Is there any programming platform (library, runtime, language, and compiler) that supports reversible computing?</p>
</blockquote>
<p><a href="https://github.com/GiggleLiu/NiLang.jl" rel="nofollow noreferrer">NiLang</a> is an open source, embedded domain specific reversible programming language in Julia. This eDSL can be used for <a href="https://arxiv.org/abs/2003.04617" rel="nofollow noreferrer">programming language level automatic differentiation</a> and its performance is good.</p>
Reversible computing platform
<p>From the <a href="http://www.cise.ufl.edu/research/revcomp/faq.html" rel="noreferrer">Reversible Computing</a> FAQ:</p>

<blockquote>
  <p>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).</p>
</blockquote>

<p>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. </p>

<p>Is there any programming platform (library, runtime, language, and compiler) that supports reversible computing?</p>