我只想知道,如果我的语言是turing-complete的话,用它写一个打印出来的程序(当然不使用文件读取功能)是否有100%的可能性。
所以,如果这门语言只有真正必要的东西才能使它图灵完整(我会通过将Brainf*ck代码翻译成它来证明这一点),比如输出,变量,条件和goto(见鬼,是的,goto),我可以尝试用它写一个quine吗?
我之所以这样问,也是因为我不确定quine是否直接符合图灵定律,即图灵机能够完成任何计算任务。我只是想知道,所以我几年来都不会在不知道这可能是不可能的情况下尝试。
发布于 2010-04-03 01:15:40
任何编程语言都是图灵完全的,并且能够输出任何字符串(通过字符串的可计算函数作为程序-这是在存在的每种编程语言中都满足的技术条件),具有如下不动点定理所示的程序(实际上,无限多个quine程序和许多类似的好奇心)。
See here
发布于 2010-04-03 01:22:12
几个月前我遇到了这个问题。
虽然编写quine并不一定证明一种语言是图灵完成的,但这是一个强烈的建议;)就图灵完备性而言,如果你(就像你说的那样)能提供从你的语言到另一种图灵完成语言的有效翻译,那么你的语言就是图灵完成。
也就是说,任何可以输出字符串的图灵完成语言都应该能够生成quine。另外,来自维基百科:
当执行环境被视为一个函数时,quine是执行环境的固定点。Quines在任何能够输出任何可计算字符串的编程语言中都是可能的,这是Kleene's recursion theorem的直接结果。为了消遣,程序员有时会尝试用任何给定的编程语言开发尽可能短的quine。
发布于 2010-04-03 03:17:04
有可能有一种编程语言不能打印其表示中的所有符号。例如,I/O可以被限制为具有阿拉伯语语言关键字的7位ASCII字符。这是我能想到的唯一例外。
https://stackoverflow.com/questions/2568020
复制相似问题