清晰,完整的语言证明图灵竞争了吗?


10

我看到过一些网站声称“证明” HTML5 + CSS已经完成。

我见过一些网站声称“证明” SQL已经完成。

我已经看到了许多网站,它们声称“解释” Turing Complete的含义。

足够!

我在哪里可以找到一本书(由可计算性理论的专家撰写)或经过同行评审的文章(在著名的期刊中)显示以下证明:“这种语言XYZ能够描述具有相同计算能力的计算机作为图灵机”?


3
没有专家会写这样的论文,因为那将毫无意义。
Andrej Bauer

但是有论文可以做到这一点。考虑到准延迟不敏感电路是图灵完备的,有构造证明。
Dan D.

2
如果您能找到同行评审的论文,其中有HTML5 + CSS或SQL或PHP的Turing完整说明,我会吃惊的。
Andrej Bauer 2013年

@andrej试试这个。足够近?XSLT 2.0版是Turing-Complete:基于纯变换的证明。也许只是吃你的蔬菜:p
vzn

另请参阅什么使语言的学习完整完成,programmers.se
vzn 2013年

Answers:


12

可以实现两个计数器(即,两个可以存储两个任意大整数的寄存器)的语言,以及由这两个基本指令的带标记序列构成的程序,都是图灵完成的:C1,C2

  • 将加到计数器,GOTO指令C i I j1CiIj
  • SUBTRACT从计数器如果和GOTO指令 ; 否则(如果)GOTO指令C i C i > 0 I j C i = 0 I k1CiCi>0IjCi=0Ik

结果证明:

Marvin L. Minsky,“图灵机理论中Post的标签问题和其他主题的递归不可解性”(1961年)

不要忘了一个计算模型(在你的情况下,编程语言+是该语言编写的执行程序的设备)可以被认为是图灵只要它支持访问的内存无限量(即空间),也可以存储完整的(以某种形式)任意大整数。实际计算机上的编程语言实现等效于线性有界自动机

您还可以在Wikipedia页面上找到有关RAM模型RASP模型的大量参考。

最后,一本专注于不同计算模型的等效性的不错的书是:

Maribel Fernandez撰写的“计算模型:可计算性理论导论”


“别忘了仅当编程语言支持对无限内存的访问时,才可以将其视为图灵完成的。”因此,不存在图灵完成语言的实现吗?这是你的结论吗?还是您想说我们使用的所有(大多数)语言都是图灵完整的,因为这一要求很容易实现?从目前的情况来看,这两个结论都是正确的。
Bakuriu


@Bakuriu:的确是有点模棱两可;我只是说,如果某种计算模型允许使用无限制的存储,则可以认为它是图灵完整的。大多数编程语言都是Turing完整的,因为在它们的(语法)规范中,它们对变量或指针的大小没有限制,但是它们的实现是有限的。参见例如C的<limits.h>。因此,即使您有一台运行C实现的无限制内存的计算机,也不能使用该内存,除非您提供了不属于该语言的“额外机制”。
2013年

从技术上讲,实际计算机上的编程语言实现甚至不是线性绑定自动机的真正体现,因为它们不能接受任意CSL ...出于同样的原因,计算机不等同于图灵机,即不够用记忆。机器需要多少内存才能接受上下文敏感语言?我想您可能会反对,只要您有足够的空间写下问题,便可以解决该问题,但这并不能改变我们无法制作与LBA等效的物理模型的事实……{w.ww{0,1}}
Patrick87

3

关于可计算性和复杂性理论的两本使用最广泛的教科书是:

Michael Sipser:《计算理论导论》,2 / e,Cengage,2005年。

约翰·霍普克罗夫特(John E Hopcroft);Jeffrey D Ullman:自动机理论,语言和计算导论,Addison-Wesley,1979年。

还有一本专为外行人撰写的精美的哲学专论,它通过可计算性理论的技术细节来工作,而没有正式的证据。

道格拉斯·霍夫施塔特(Douglas Hoftstadter):哥德尔,埃舍尔,巴赫(Bach),基础书籍,1979年。

最后,关于可计算性的最佳介绍可能是著名逻辑学家撰写的一本难题书:

Raymond Smullyan:《夫人还是老虎和其他逻辑难题》,企鹅出版社,1983年。(现在便宜的Dover版,2009年。)

(他从一堆基于骗子悖论的谜题开始,然后以与夏洛克·福尔摩斯(Sherlock Holmes)风格有关神秘的锁盒的谜题为伪,为您构建自我指称的陈述。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.