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