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

时间:2010-04-08 15:13:47

标签: language-agnostic turing-complete

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

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

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

  • Regex Parser and Evaluater?

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

(理论上的一切)

让我们以Brainf * ck为例。

8 个答案:

答案 0 :(得分:8)

  

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

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

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

答案 1 :(得分:8)

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

答案 2 :(得分:5)

不,图灵完整性与I / O和硬件无关。 但是,您可以通过使用变量(或“内存磁带”)来假装存在I / O,硬件系统和图形系统。在BF中,您可以使用前2个单元格( x y )作为“假装”屏幕分辨率,然后使用另外 x y 屏幕上所有像素的单元格,然后是“假装”文件系统大小的下一个单元格( n ),然后是文件系统内容的下一个 n 单元格...

答案 3 :(得分:2)

是的,当然,所有这些。毕竟,“Turing-complete”意味着:它可以计算可以计算的所有东西。

答案 4 :(得分:1)

所有Turing-complete真正需要的是你可以做简单的数学运算,有一些变量,并且可以做一个while循环。或者任意数量的等价物。如果你想做真正的程序,你需要更多(特别是系统调用),你也必须担心效率(图灵机可能很慢......)理论上,图灵等效系统之间没有区别,但在实践中有。。

如果有人在BF中使用WoW客户端,我将非常留下深刻印象!

答案 5 :(得分:0)

任何可以用一种图灵完备语言实现的算法都可以在任何其他语言中实现。您的问题更多地涉及必须通过相关语言提供的操作系统服务和API。

简而言之,从形式语言的角度来看,答案是肯定的。

答案 6 :(得分:0)

理论,是的。但是一个更有趣的问题是,如果某种“深奥”的编程语言实际上是可能的话。

答案 7 :(得分:-2)

每个图灵完备语言都可以计算同一组函数。 因此,一个图灵完备的语言可以完成您所写的所有内容,因为这些内容是使用其他图灵完备语言计算的。