首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有可能在每种图灵完成语言中创建quine吗?

有可能在每种图灵完成语言中创建quine吗?
EN

Stack Overflow用户
提问于 2010-04-03 01:10:32
回答 4查看 3.8K关注 0票数 32

我只想知道,如果我的语言是turing-complete的话,用它写一个打印出来的程序(当然不使用文件读取功能)是否有100%的可能性。

所以,如果这门语言只有真正必要的东西才能使它图灵完整(我会通过将Brainf*ck代码翻译成它来证明这一点),比如输出,变量,条件和goto(见鬼,是的,goto),我可以尝试用它写一个quine吗?

我之所以这样问,也是因为我不确定quine是否直接符合图灵定律,即图灵机能够完成任何计算任务。我只是想知道,所以我几年来都不会在不知道这可能是不可能的情况下尝试。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-03 01:15:40

任何编程语言都是图灵完全的,并且能够输出任何字符串(通过字符串的可计算函数作为程序-这是在存在的每种编程语言中都满足的技术条件),具有如下不动点定理所示的程序(实际上,无限多个quine程序和许多类似的好奇心)。

See here

票数 32
EN

Stack Overflow用户

发布于 2010-04-03 01:22:12

几个月前我遇到了这个问题。

虽然编写quine并不一定证明一种语言是图灵完成的,但这是一个强烈的建议;)就图灵完备性而言,如果你(就像你说的那样)能提供从你的语言到另一种图灵完成语言的有效翻译,那么你的语言就是图灵完成。

也就是说,任何可以输出字符串的图灵完成语言都应该能够生成quine。另外,来自维基百科:

当执行环境被视为一个函数时,quine是执行环境的固定点。Quines在任何能够输出任何可计算字符串的编程语言中都是可能的,这是Kleene's recursion theorem的直接结果。为了消遣,程序员有时会尝试用任何给定的编程语言开发尽可能短的quine。

票数 5
EN

Stack Overflow用户

发布于 2010-04-03 03:17:04

有可能有一种编程语言不能打印其表示中的所有符号。例如,I/O可以被限制为具有阿拉伯语语言关键字的7位ASCII字符。这是我能想到的唯一例外。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2568020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档