从可逆计算常见问题解答:
在给定的比特耗散率下实现最大可能的计算性能通常不仅需要在最低级别,而且在所有计算级别——在设备、电路、架构、语言和算法中(强烈推测,但不是尚未正式证明的结果——称之为弗兰克定律)。
据我了解,当位归零时会产生能量损失。如果软件和硬件平台具有反转逻辑操作的能力,则可以减少热量产生。
是否有任何支持可逆计算的编程平台(库、运行时、语言和编译器)?
从可逆计算常见问题解答:
在给定的比特耗散率下实现最大可能的计算性能通常不仅需要在最低级别,而且在所有计算级别——在设备、电路、架构、语言和算法中(强烈推测,但不是尚未正式证明的结果——称之为弗兰克定律)。
据我了解,当位归零时会产生能量损失。如果软件和硬件平台具有反转逻辑操作的能力,则可以减少热量产生。
是否有任何支持可逆计算的编程平台(库、运行时、语言和编译器)?
是的,至少在研究中存在一些可逆的编程语言。
我对这个领域也很感兴趣,我收集了一些指针。这两篇论文很酷:
那些我还没有读过的(但在我的待办事项列表中)并且看起来很有趣:
黑客新闻上也有这个线程。
关于双向转换(代码、模型、数据结构等)的文献更为丰富,这在某种程度上与可逆计算有关。
据我了解,对于真正的可逆计算,我们需要在可逆计算机上运行算法。只需引用以下链接:
可逆计算机:一种计算机,其中所有芯片和电路都执行可逆功能,不会向周围环境传递热量或从周围环境传递热量。1990 年代,麻省理工学院的一个小组构建了初步的硬件,证明这种“绝热”计算是可能的。
Prolog和其他语言中有各种可逆解析器的实现。因为 Prolog 允许可逆计算,所以可以在 Prolog 中实现 Janus 编程语言的解释器。
当位清零时会产生能量损失
任何不可逆的过程(即丢失信息的过程)都伴随着能量耗散。例如,x^2
函数是不可逆的,因为它不是双射,要实现这个函数,你应该要么
是否有任何支持可逆计算的编程平台(库、运行时、语言和编译器)?
NiLang是 Julia 中的一种开源、嵌入式领域特定的可逆编程语言。该eDSL可用于编程语言级别的自动微分,性能良好。