首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编译成自身的程序

编译成自身的程序
EN

Code Golf用户
提问于 2020-04-13 03:06:21
回答 1查看 1.8K关注 0票数 28

我们有很多关于奎因s的问题,这些程序的源代码和输出是相同的。对于编译语言,还有其他的组合:我们已经有了关于编写可执行文件和输出完全相同的程序的一个问题。但还有一个密码。

任务

使用一种编译语言(即一种有编译器将源代码转换为可执行程序的语言),编写一个程序,该程序在编译时将产生一个与源代码位对位相同的可执行文件。

Clarifications

  • 与所有奎因挑战一样,您必须服从站点的适当奎因规则。特别是,这不包括零字节程序,以及所有命令都编译成自己的程序.
  • 至少对于这个挑战,结果的可执行文件在运行时做什么并不重要;这纯粹是一个编译时挑战。(如果结果很容易,我肯定有人最终会发布一个“编写源代码、可执行文件和执行时输出都相同的程序”的挑战,但对于这个挑战,您不需要达到这样的复杂程度。)
  • 实际上,您的程序将是源语言和它编译成的语言之间的多角化。这意味着您需要选择一种源语言和可执行格式,这样的组合是可能的。
  • 多步编译(例如将一门深奥的语言编译成C,然后编译成一个可执行文件)是解决这个问题的合法方法。但是,这仅限于使用三个编译步骤(以避免按所用编译器的顺序而不是在源代码中编码所需输出的答案)。
  • 不要使用异常的编译器标志通过滥用C编译器的-D选项来隐藏代码(或将代码从程序转移到编译器标志中的类似技术)来漏洞这个问题。您很可能需要使用不寻常的编译器标志来以正确的格式生成可执行文件,但是这些标志对于编译程序通常是有用的,而不是特定于您编写的程序的标志(以及嵌入有关它的信息);请记住,在这个站点上,您使用的语言是由您正在使用的解释器和编译器标志定义的。
  • 同样,您的解决方案可能需要源代码的特定文件名;为了防止您使用这个文件名来存储代码,任何特定的文件名都应该由一个字符组成,后面可能是您使用的语言的标准文件扩展名。
  • 请说明编译程序所用的确切编译器和版本,以及构建程序所需的编译器标志,因为否则您的答案可能很难复制/验证;这个问题的解决方案可能本质上是特定于编译器的。
  • 这个问题的主要目的是编译成操作系统使用的可执行格式,但是如果您有一种语言可以编译成其他语言(例如字节码),那么您也可以为该设置提交一个答案,即使它不会那么令人印象深刻。我们不需要不必要地限制您可以在这里使用哪些语言。

胜利条件

这实际上是一个密码-高尔夫 (最小化源的大小)和sizecoding (最小化可执行文件的大小)同时发起的挑战(因为两者是相同的):在这个挑战中,如果程序的字节长度较短,则被认为比另一个程序得分更高。因此,一旦你想出了解决这个问题的方法,你就可以看到你是否可以通过将程序放入更少的字节来做得更好。

EN

回答 1

Code Golf用户

发布于 2020-04-13 05:25:39

CoffeeScript到JavaScript,2字节

代码语言:javascript
运行
复制
a;

试试看

没有禁令“所有命令都编译成自己的程序”,js2js将是一个更好的选择,国际海事组织。

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

https://codegolf.stackexchange.com/questions/203442

复制
相关文章

相似问题

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