最短的自输出程序
自输出程序,又称 quine,是输出自己代码的程序。而地表最短的自输出程序(并不严格,因为严格的自输出程序不能为空),在 1994 年的 IOCCC(国际混乱 C 语言大赛)中获得了对规则最糟糕的滥用奖,该程序如下:
你没看错,这个程序的长度为 0。这个程序既是又不是合法的 C 程序,部分编译器允许这个程序,但部分又拒绝。为了让这个程序能够编译,作者在Makefile
里指定了一些编译器参数。但在现在的系统上,链接器会报告“对 main()
未定义的引用”。自从这个程序出现后,IOCCC 组委会将自输出程序的最长长度限制为 1 ,剥夺了这类程序的获奖资格( 1 字节的程序有什么花样能玩呢?)。
此外,这个程序对很多语言来说也仍然成立,不会报告任何错误。
已测试的名单:
- awk
- perl
- python
- ruby
- gjs
- bash