问题标签 [quine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3876 浏览

language-design - 是否有可能在每种图灵完备的语言中创建一个 quine?

我只是想知道是否有 100% 的可能,如果我的语言是图灵完备的,在其中编写一个可以打印出来的程序(当然不使用文件读取功能)

因此,如果该语言只有真正必要的东西才能使其完整(我会通过将 Brainf*ck 代码翻译成它来证明这一点),比如输出、变量、条件和 goto(地狱是的,gotos),我可以尝试在里面写一个quine?

我也在问这个问题,因为我不确定 quine 是否直接符合图灵机能够执行任何计算任务的图灵定律。我只是想知道,所以我不会尝试多年而不知道这可能是不可能的。

0 投票
9 回答
15259 浏览

java - 自我复制的程序

是否可以制作一个 Java 程序,将其源代码打印到一个新文件中,然后编译它,然后运行编译后的程序?

0 投票
3 回答
774 浏览

turing-complete - 我的编程语言中的 quine 看起来如何?

我已经创建了一个图灵完备的编程语言(已经被证明),所以必须可以为它写一个quine,对吧?

但是我知道的所有 quines 都将它们的源代码存储在一个字符串中,然后使用类似chrand的东西替换其中的一个特殊字符ord

我的语言只有以下

  • 基本算术
  • 整数和字符串类型
  • 变量
  • == 运算符
  • 有条件的 goto

我不知道如何编写 quine,因为我没有可用的真正字符串操作,我只能输出常量字符串。然而,它是 100% 图灵完备的。

0 投票
3 回答
1370 浏览

c - 是否可以编写一个使用“序列生成函数”打印自己的源代码的程序

是否可以编写一个使用“序列生成函数”打印自己的源代码的程序?

我所说的序列生成函数只是一个返回特定间隔之外的值的函数(即可打印的 ascii 字符(32-126))。现在的重点是,这个生成的序列应该是程序自己的源代码。如您所见,实现一个返回任意序列的函数确实很简单,但是由于返回的序列必须包含函数本身的实现,所以这是一项非常重要的任务。

这就是这样一个程序(及其相应的输出)的样子

我个人认为这是不可能的,但由于我对潜在问题不太了解,所以我在这里发表了我的想法。我真的很期待听到一些意见!

0 投票
2 回答
1412 浏览

java - 是否可以编写一个打印语句本身的 Java printf 语句?

是否有可能有一个 Javaprintf语句,其输出是语句本身?

一些片段来说明:

这打印something

所以尝试 #1 的输出并不完全是printf尝试 #1 中的语句。我们可以尝试这样的事情:

现在的输出是System.out.printf("something");

所以现在尝试 #2 的输出与输出 #1 中的语句匹配,但我们又回到了之前遇到的问题,因为我们需要尝试 #2 的输出来匹配尝试 #2 中的语句。

那么是否可以编写一个打印自己的单行printf语句?

0 投票
2 回答
734 浏览

python - 这是一个有效的quine吗?

python quine.py foo

0 投票
3 回答
255 浏览

programming-languages - 有助于编写 quines(自打印程序)的语言功能?

好的,对于那些从未遇到过这个词的人来说,quine是一个“自我复制”的计算机程序。更具体地说,它在执行时会生成其自己的源代码的副本作为其唯一输出。

当然,quines 可以用许多编程语言(但不是全部)开发。但是有些语言显然比其他语言更适合产生 quines(为了清楚地理解听起来有点主观的“更适合”,请查看Wiki 页面中的 Haskell 示例与 C 示例- 我在下面提供了我更客观的定义) .

我的问题是,从编程语言的角度来看,哪些语言特征(理论设计或语法糖)使该语言更适合/有助于编写 quines

我对“更合适”的定义是“quines 更容易编写”和“更短/更易读/更少混淆”。但欢迎您添加更多至少有些客观的标准。

请注意,此问题明确排除了退化情况,例如旨在包含“print_a_quine”原语的语言。

0 投票
4 回答
1567 浏览

python - 是否可以访问标准中传递给 python 的 python 脚本的源代码?

这是一个随机的问题,更多的是出于好奇而不是任何特定的需要。

是否可以编写一些 python 代码来打印一些东西,包括源代码本身,而无需将 python 代码存储在文件中?例如,在 Bash 提示符下执行以下操作:

并得到这样的输出:

我怀疑这可能无法做到,但是鉴于python的自省能力,我很想知道它是否扩展到了这个级别。

0 投票
1 回答
7182 浏览

compression - 只包含自身的 Zip 文件?

只是出于好奇,是否存在一个有效的 zip 文件(根据格式规范),它只包含它自己?

换句话说,由 实现的功能unzip是否有固定点?

我可以编写一个程序以智能(非穷举)的方式搜索这样的固定点吗?

我也想过相反的情况,即如果zip有一个固定点,但大概一个文件可以以不同的方式压缩(不同的算法,不同的压缩级别等),因此f = zip(f)对于某个文件是否成立f是可能依赖于实现。但是,由于 zip 压缩是无损的,因此 for 的情况unzip可能应该有一个“正式”的答案。

有没有人探索过这个?感谢任何指向相关 URL 的指针。

0 投票
2 回答
325 浏览

javascript - Javascript:同时执行和Quine

我在这里有一个奇怪的需求,我不确定它的可行性。我只能想我将如何使用线程来做到这一点(要创建另一个执行Quine函数的线程,同时运行我想要Quine并同时执行的脚本的线程(无需在任何地方手动添加警报!!!),但是javascript没有那个功能,对吧?

我有一些 JavaScript 由一个应用程序解释,它本身具有最小的 JavaScript 调试能力。我的脚本崩溃了,因为它还使用了一些只有这个应用程序才能理解的语句,所以我无法在 Firefox 或 Internet Explorer 中调试它,因为它们无法处理这些自定义语句。我希望我能够实现的是一个可以模仿另一个程序但也可以执行它自己的功能的程序。

出于争论的原因,假设我有一个名为 hello.js 的脚本,它输出“Hello World!” 100 次,当提供给应用程序时,它会解释这一点,但是在某些时候会跌倒,但由于调试能力有限,我无法说出原因、地点和时间。

然后我想要一个可以传递给应用程序的脚本,而不是假装是上面的脚本,但也会在每个语句执行之前发出警报。我可以这样做:

但是,我相信您可以看到对于一个冗长的程序来说,这将是一项艰巨的任务。相反,我想制作一个可以像这样执行的程序: