一、概念

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

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

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

二、图灵完备语言

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

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

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

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

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

四、参考资料

python 图灵完备_区块链学习6:图灵完备和图灵不完备相关推荐

  1. 问道区块链_区块链学习_v1.0.0_持续更新。。。

    本系列内容参考图 创建 共识网络 调用 部署 挖矿 消耗 编写 超级链组件 节点 多节点 账号 智能合约 合约账号 燃料耗品代币 开发者 区块 尊重原创,转载请注明出处https://blog.csd ...

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

    ☞ ░ 前往老猿Python博文目录 ░ 一.概念 图灵完备(Turing Complete),图灵完备是指机器执行任何其他可编程计算机能够执行计算的能力.在可计算性理论里,如果一系列操作数据的规则( ...

  3. 通过python构建一个区块链来学习区块链

    了解区块链Blockchains如何工作的最快方法就是构建一个区块链.你来到这里是因为,和我一样,你对加密钱币的崛起感到很兴奋.而且你想知道区块链是如何工作的,想了解它们背后的基本技术. 但理解区块链 ...

  4. 如何使用区块链币收款地址找合约地址?_区块链技术学习指引

    本文原文链接 本文为博客文章索引,小白必看.有新文章时会更新本文,建议大家加入收藏夹中,如果你觉得本站不错,欢迎你转发给朋友. 引言 给迷失在如何学习区块链技术的同学一个指引,区块链技术是随比特币诞生 ...

  5. 看完此文再不懂区块链算我输:手把手教你用Python从零开始创建区块链

    导读:如果你还没有听说过 3 点钟区块链群,说明你还不是链圈的人:如果你还没有加入 3 点钟区块链群,说明你还不是链圈的大佬:如果你还没有被 3 点钟区块链群刷屏,说明你还体会不到什么是"币 ...

  6. 区块链学习路径,看这一篇就够了 | FISCO BCOS

    FISCO BCOS开源社区已沉淀过百篇文章,覆盖了区块链学习各个阶段.为了方便大家对应自身学习阶段找到合适的教程,我们按照区块链学习成长路径对社区文章进行整理排序,希望沿着这份路径规划,大家都能成为 ...

  7. 菜鸟日记day3(结束篇):用Python实现基于区块链的食堂农产品溯源管理信息系统大作业

    经过两周的课程设计,终于完成了整个报告的书写.有必要总结一下书写的顺序等,对毕业论文会有帮助. 1,写作逻辑 目录 第一章 选题论证 2 第二章 信息系统分析 3 一.食品溯源管理信息系统需求分析 3 ...

  8. 用Python从零开始创建区块链

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 前言 如果你还没有听说过 3 点钟区块链群,说明你还不是链圈的人:如果你还没有加入 3 点钟区块链群,说明你还不是链圈的 ...

  9. 剑英的区块链学习手记(二)

    孙子说,知己知彼,百战不殆. 咱是通过小蚁学习区块链技术的. 开工之前,先了解一下小蚁的资料家族. 小蚁网站 https://www.antshares.org/ 小蚁源码 https://githu ...

最新文章

  1. 黑客渗透入门教程 第一课:粗暴的端口扫描
  2. Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流
  3. uni-app开发微信小程序之获取当前地址
  4. Git教程学习总结(分享给热爱学习的你,团队的协作离不开你呀)
  5. 自己做计算机三级,计算机三级辅导:自己“做”软驱
  6. secureCRT连接服务器和文件传输( 一步搞定)
  7. 软件测试适合女生学吗?
  8. Flutter入门(2)—创建项目
  9. mysql大数据高并发处理
  10. 堆排序(java完整代码)
  11. Centos7 搭建 Socks 服务
  12. Ubuntu20.04安装mujoco
  13. Scintilla教程(4): 复制粘贴以及撤销回退
  14. 魔兽世界地图插件制作代码
  15. 【微信开发6】专属推广二维码 java+SpringBoot
  16. UI 标注工具MarkMan的测量像素使用
  17. mappedBy和JoinColumn实质上指向的是同一个表即外键作为主键所在的表对应的实体
  18. 博客上怎么根据搜索ID搜索其它人
  19. 火狐浏览器如何关闭右侧的“百度热搜”
  20. Android 版本号---版本名

热门文章

  1. Chrome浏览器怎么安装插件
  2. C语言学习笔记---8C语言中的英文字符
  3. Juniper Junos设置3层接口
  4. 电商双十一购物节促销活动及短信营销解决方案
  5. 青龙面板-快手极速版(每天3块脚本)
  6. PMP模拟试题每日5题(4月28日)
  7. TSMaster1.1版本更新补丁
  8. Maven学习(一)---Maven简介
  9. 程序封装真的是令人讨厌_网络上最令人讨厌的黑暗模式
  10. 安全狗2周年“全民大抽奖”活动