• 区块链学习6:图灵完备和图灵不完备


    ☞ ░ 前往老猿Python博文目录

    一、概念

    图灵完备(Turing Complete),图灵完备是指机器执行任何其他可编程计算机能够执行计算的能力。在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)按照一定的顺序可以计算出结果,被称为图灵完备。

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

    所有的通用编程语言和现代计算机的指令集都是图灵完备的(C++ template就是图灵完备的),都能解决内存有限的问题。图灵完备的机器都被定义有无限内存,但是机器指令集却通常定义为只工作在特定的、有限数量的RAM上。

    二、图灵完备语言

    图灵完备的语言,有循环执行语句,判断分支语句等。理论上能解决任何算法。但有可能进入死循环而程序崩溃。

    图灵不完备也不是没有意义,有些场景我们需要限制语言本身。如限制循环和递归, 可以保证该语言能写的程序一定是终止的。

    图灵完备和图灵不完备各有其优势,图灵不完备会更安全些,图灵完备会更智能些。

    三、图灵完备与区块链的关系

    区块链2.0中的智能合约包括其运行的虚拟机、编写语言都是图灵完备的,而区块链1.0如比特币的账本交易都是用脚本执行,其编写脚本语言不是图灵完备的。

    四、参考资料

    1、《什么是图灵完备?
    2、《图灵完备到底是个什么鬼?

    ☞ ░ 前往老猿Python博文目录

  • 相关阅读:
    初步认识,合并集(树)
    20180918-1 词频统计
    20181011-1 每周例行报告
    2018091-2 博客作业
    项目第六天
    项目第五天
    项目第四天
    项目第三天
    总结随笔
    测试报告
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/13643412.html
Copyright © 2020-2023  润新知