图灵完备(Turing Complete),图灵完备是指机器执行任何其他可编程计算机能够执行计算的能力。
图灵完备也意味着你的语言可以做到能够用图灵机能做到的所有事情,可以解决所有的可计算问题。
简单来讲,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。当然图灵完备也可能因为陷入死循环而导致程序崩溃。
在某些场景中图灵完备需要限制语言,有循环执行语句,判断分支语句等。举个例子,如果有人说,我的东西是图灵完备的,也就意味着理论上它能够用来解决任何计算性的问题。此外,图灵完全性通常指具有无限存储能力的通用物理机器或编程语言。
与图灵完备相反的是图灵不完备,图灵不完备应该是不允许或限制循环。可以保证,每段程序都不会死循环,都有运行完的时候。比特币的脚本系统是图灵不完备的,而一些Token的智能合约系统是图灵完备的。
图灵完备和图灵不完备各有其优势,图灵不完备会更安全些,图灵完备会更智能些。
类似以太坊类似的图灵完备的脚本语言,包括了循环的逻辑。然而为了保持网络稳定性,一些项目会对最大的循环次数做出一定限制。根据通用图灵机的概念,图灵完备就是现代编程语言所能拥有的,可以达到的冯诺伊曼体系结构所能达到的最高计算力。
一般来说,除了一部分脚本语言(如比特币自带的脚本语言)以外,大部分的计算机语言都是图灵完备的。使用图灵完备的脚本语言,可以在逻辑上做到和其他编程语言兼容,并在理论上能够实现任何其他语言所能实现的逻辑,以及最大限度的复制现实的商业逻辑。
网友评论