什么是图灵完成?

“Turing Complete”的意思是什么?

你能否给出一个简单的解释,而不会涉及太多的理论细节?


以下是最简单的解释:

图灵完整系统意味着一个系统,在该系统中可以编写一个能够找到答案的程序(尽管没有关于运行时间或内存的保证)。

所以,如果有人说“我的新东西是图灵完整”,这意味着原则上(尽管通常不是在实践中),它可以用来解决任何计算问题。

有时候这是个玩笑......一个人在vi中编写了一个图灵机模拟器,所以可以说vi是世界上唯一需要的计算引擎。


这是最简单的解释

Alan Turing创建了一台可以制作程序并运行该程序并显示一些结果的机器。 但之后他必须为不同的程序创建不同的机器。 于是他创建了可以接受任何程序并运行的“通用图灵机”。

编程语言与这些机器类似(尽管是虚拟的)。 他们采取计划并运行它们。 现在,一个编程语言被称为“图灵完成”,如果它可以运行任何程序(无论语言),图灵机可以运行足够的时间和内存。

例如:假设有一个程序需要10个数字并添加它们。 图灵机可以很容易地运行这个程序。 但是现在想象一下,由于某种原因,你的编程语言不能做相同的添加,那么它就是图灵机器不完整。 另一方面,如果它可以运行像通用图灵机可以运行的任何程序,那么它就是图灵完整的。

大多数现代编程语言,如Java,JavaScript,Perl等都是完全彻底的,因为它们都实现了运行程序所需的所有功能,如加法,乘法,if-else条件,返回语句,存储/检索/擦除数据的方式等。

更新:您可以在我的博客文章中了解更多:“JavaScript是图灵完整” - 解释


从维基百科:

以Alan Turing命名的图灵完备性的重要性在于,迄今为止先进的计算设备的每一个合理的设计都可以通过一个通用的图灵机来模拟 - 这个观察结果被称为Church-Turing论文。 因此,可以充当通用图灵机的机器原则上可以执行任何其他可编程计算机能够进行的任何计算。 但是,这与编写机器程序所需的工作量,机器执行计算所需的时间或机器可能具有的与计算无关的任何能力无关。

虽然真正的图灵完全机器很可能在物理上是不可能的,因为它们需要无限存储,但图灵的完整性通常被松散地归因于物理机器或编程语言,如果它们具有无限存储,它们将是通用的。 从这个意义上说,所有现代计算机都是图灵完备的。

我不知道你怎么可能比这更“非技术性的”,除非说“完全的手段”能够在足够的时间和空间下解决可计算的问题“。

链接地址: http://www.djcxy.com/p/22901.html

上一篇: What is Turing Complete?

下一篇: What is the 'expression problem'?