每种图灵完整的语言都可以存在这些类型的程序吗?

I c*_*me. 7 language-agnostic turing-complete

在每种图灵完备语言中,是否可以创建一个工作

  • 编译器本身首先运行在用其他语言编写的解释器上,然后编译它自己的源代码?(引导)

  • 标准 - Compilant C++编译器输出二进制文件,例如:Windows?

  • 正则表达式解析器和评估器?

  • 魔兽世界克隆?(假设语言获得必要的API绑定,例如,OpenGL和WoW源代码可用)

(理论上的一切)

我们以Brainf*ck为例.

Joh*_*lla 8

在每种图灵完备语言中,是否有可能创建一个有效的......

如果一个图灵完整的语言可以做到,那么他们都可以.从这个意义上讲,他们都同样"强大".由于您描述的所有内容已经存在于至少一种图灵完整语言中,因此任何这些程序都可以使用任何其他图灵完整语言编写.

然而,仅仅因为某些事情是可能的并不意味着它很容易,甚至可行.这是一个非常重要的区别,它是存在不同编程语言的关键所在.他们并不都擅长制作特定类型的软件 - 如果是这样的话,我们只需要一种语言!

  • @LB:可能性不等于可行性.这是一个简单的例子.想象一下图灵完备语言,其中写下指令"将值x分配给符号y"需要比整个世界中存在的更多的存储器.这样的语言使_possible_可以编写图灵完备程序,但编写它们并不可行_因为实际编码所需信息是不切实际的. (3认同)
  • SQL不是Turing-Complete,可能是PL/SQL之类的扩展 (2认同)

Rha*_*aun 8

Turing-Complete仅表达计算能力,与I/O能力无关!


Min*_*ang 5

不,图灵完整性与I/O和硬件无关.但是,您可以通过使用变量(或"内存磁带")来假装存在I/O,硬件系统和图形系统.在BF,可以使用第一2个细胞(X,Ÿ)的"假装"的屏幕分辨率,那么另一个XŸ细胞在屏幕上的所有像素,那么下一个单元格(ñ)的"假装"文件系统的大小,那么下一个文件系统内容的n个单元格......


Mic*_*rdt 2

是的,当然,所有这些。毕竟,这就是“图灵完备”的含义:它可以计算所有可以计算的东西。