什么是图灵完备的编程语言?

什么是图灵完备的编程语言?

阅读 31.4k
7 个回答

如果一个语言的计算能力和通用图灵机相当,那么就是图灵完全的。

虽然图灵机的概念很简单,但这是现代编程语言所能拥有的最高计算能力。

编程语言本质上都是在冯诺依曼体系结构的计算机上,对图灵机的抽象。所以,可以回答题主的疑问:现在的计算机编程语言都是图灵完全(完备)的。

因此,这世上也不存在一种语言可以做,而另一种语言不可以做的事儿(PS:不过,PHP仍然是世界上最好的编程语言)。

那有没有不是图灵完备的吗?有:

算盘

翻译一下上边那段英文.. 再简化一下, 就是能够模拟最初图灵机的那个纸带模型.
纸带模型具体细节参考 Wiki, 总之是鬼怎非常非常简单的一个模型,
它只能做移动, 写符号, 擦除这样一些基本的操作, 但这个模型是可以模拟所有的计算过程的.
的一门编程语言能模拟纸带模型的图灵机, 就是说也能够模拟所有的计算过程.
这样就完备了... 虽然很多还是数学上的内容.

大概要注意下, 我记得以前看网上经常会弄错, 就是把完备性当成一门语言能做各种功能
比如说处理文件, 处理网络, 能用正则, 或者模拟面向对象之类的.. 大致对应编程语言功能的涵盖..
完备性更多是数学上的概念, 后者跟完备性不是指一个事情.

http://en.wikipedia.org/wiki/Turing_completeness

In computability theory, a system of data-manipulation rules (such as a computer's instruction set, a programming language, or a cellular automaton) is said to be Turing complete or computationally universal if it can be used to simulate any single-taped Turing machine. The concept is named after Alan Turing. A classic example is lambda calculus.

简单一点就是什么开发都能做的编程语言。
另迷渡老师的解答非常精彩(尤其是关于PHP的部分

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏