C言語で書かれたあるプログラムソースをコンパイルして実行したところ、 そのプログラムソースそのものが一字一句違わずに画面に表示された。 さて、いったいどんなソースだったのだろうか。なるべく短いソースを考えていただきたい。 ただし、コンパイル後の実行ファイルのみで動作しなければならず、 たとえばそのソースファイルを利用する(読み込んで表示するなど)ことは許されない。
#include <stdio.h> char* str="#include <stdio.h>%c%cchar* str=%c%s%c;%c%cvoid main()%c{%c printf(str,10,10,34,str,34,10,10,10,10,10,10);%c}%c"; void main() { printf(str,10,10,34,str,34,10,10,10,10,10,10); }
ソースと同じ
実行時にソースコードそのものを表示するプログラムは、 日本語では不動点プログラム、 英語ではquineと呼ばれます。