美文网首页
图灵完备

图灵完备

作者: 淡泊人生的智慧 | 来源:发表于2018-02-12 21:31 被阅读197次

一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。

一个能计算出每个图灵可计算函数(Turing-computable function)的计算系统被称为图灵完备的。

一个语言是图灵完备的,意味着该语言的计算能力与一个通用图灵机 (Universal Turing Machine)相当,这也是现代计算机语言所能拥有的最高能力。

图灵完备是什么意思呢?

在可计算理论中,当一组数据操作的规则(一组指令集,编程语言,或者元胞自动机)满足任意数据按照一定的顺序可以计算出结果,被称为图灵完备(turing complete)。

一个有图灵完备指令集的设备被定义为通用计算机。

如果是图灵完备的,它(计算机设备)有能力执行条件跳转(“if” 和 “goto”语句)以及改变内存数据。 如果某个东西展现出了图灵完备,它就有能力表现出可以模拟原始计算机,而即使最简单的计算机也能模拟出最复杂的计算机。

所有的通用编程语言和现代计算机的指令集都是图灵完备的(C++ template就是图灵完备的),都能解决内存有限的问题。

图灵完备的机器都被定义有无限内存,但是机器指令集却通常定义为只工作在特定的,有限数量的RAM上。

来源:http://baike.baidu.com/link?url=S2dDtjEik5WhTrNsfSpfqGJfiK2es4bDz66DH4L4V5XheaN3t3QdE6f-c8HVT18Vz7KBqoH08Cjw8ag9ZDciha

图灵完备优缺点

图灵完备意味着你的语言可以做到能够用图灵机能做到的所有事情,可以解决所有的可计算问题。 图灵不完备也不是没有意义, 有些场景我们需要限制语言本身. 如限制循环和递归, 可以保证该语言能写的程序一定是终止的。图灵不完备会更安全些,图灵完备会更智能些。

比特币的图灵非完备性

比特币脚本语言包含许多操作,但都故意限定为一种重要的方式——没有循环或者复杂流控制功能以外的其他条件的流控制。这样就保证了脚本语言的图灵非完备性,这意味着脚本的复杂性有限,交易可执行的次数也可预见。脚本并不是一种通用语言,施加的这些限制确保该语言不被用于创造无限循环或其它类型的逻辑炸弹,这样的炸弹可以植入在一笔交易中,通过引起拒绝服务的方式攻击比特币网络。受限制的语言能防止交易激活机制被人当作薄弱环节而加以利用。

作者:叶先生的鱼

链接:https://www.jianshu.com/p/4a032a2084f0

相关文章

  • 图灵完备

    一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。 一个能计算出每个图灵可计算函数(Turing-...

  • 图灵完备

    https://blog.csdn.net/jnucstan/article/details/1724302 然而...

  • 图灵完备是什么?

    图灵完备(Turing Complete),图灵完备是指机器执行任何其他可编程计算机能够执行计算的能力。 图灵完备...

  • 图灵完备是什么?

    图灵完备(Turing Complete),图灵完备是指机器执行任何其他可编程计算机能够执行计算的能力。 图灵完备...

  • 图灵机谈学习编程

    一个通用编程语言要做的最基本的就是图灵完备,我们常用的语言的通用语言都是图灵完备。那么为什么图灵完备(Turing...

  • 2018-08-05小白学区块链——图灵完备

    前文说了智能合约是编写在区块链上的一套图灵完备的数字合约,那么什么是图灵完备呢?今天我们就了解一下什么是图灵完备。...

  • 比特币或许本来就是图灵完备的

    图灵完备,图灵完全性通常指具有无限存储能力的通用物理机器或编程语 言。图灵完备意味着你的语言可以做到能够用图灵机能...

  • PostgreSQL的用法

    图灵完备 PostgreSQL是图灵完备的, 也就是说这货能编程 帮助命令 version 数据库 显示执行时间 ...

  • 名词浅解:图灵完备

    图灵完备意味着你的语言可以做到能够用图灵机能做到的所有事情,可以解决所有的可计算问题。我的理解:图灵完备可以扩展到...

  • 区块链-图灵完备

    图灵完备意味着你的语言可以做到能够用图灵机能做到的所有事情,可以解决所有的可计算问题。图灵不完备也不是没有意义, ...

网友评论

      本文标题:图灵完备

      本文链接:https://www.haomeiwen.com/subject/guydtftx.html