引用元:https://www.ioccc.org/2014/morgan/prog.c
審査員・作者による説明:https://www.ioccc.org/2014/morgan/hint.html
動作
makeコマンドのクローン。
$ cat Makefile
MESSAGE=Hello
all: sub1 sub2
@echo $(MESSAGE)
sub1:
@echo sub task 1
sub2:
@echo sub task 2
$ gcc -o prog prog.c
$ ./prog
sub task 1
sub task 2
Hello
解説
コード形状は”MAKE”。
マクロを使った、比較的古い雰囲気の難読化がなされている。
[[1992/ant]]とネタがかぶっている?
ところで、IOCCCのMakefileにはいろいろなイースターエッグが仕込まれている。
これらはおおよそこの作品でも動いた。
$ make love
not war?
“Make love, not war”は「戦争をしないで恋をしよう」という反戦の標語。
$ make waste
haste
$ make haste
haste
“Haste makes waste”は「急がば回れ」に相当することわざ。
$ make easter_egg
you expected to sometimes mis-understand this 4323 magic
chongo <was here> /\oo/\
Readers shall not be disallowed from failong to be unable to not partly misunderstand this partocular final echo.
1行目はおそらく、“You are not expected to understand this.”(あなたがこれを理解することは期待されていない)という有名なコメントを踏まえている。このコメントはデニス・リッチーがVersion 6 Unixのソースコードに残していたとされる。
2行目の”chongo”は、IOCCCの審査員で創始者であるLandon Curt Nollのネット上の名前。
3行目は否定だらけでよくわからない英文。元ネタがあるのかは知らない。
なお、1行目の数字はmakeの組み込み変数$${RANDOM}
で実現されていて、この作品は組み込み変数に対応していないので、空欄になる。
$ make supernova
rm -f prog.o
rm -f prog
rm -f morgan
We are not expected to understand that
“supernova”は超新星。”nuke”ターゲットを呼んでいて、これは”clobber”と同じ。
$ make magic
You are holding it wrong!
These aren't the primes you're looking for Pauline!
1行目は、スティーブ・ジョブズがiPhone 4の受信感度が悪いという苦情に対して言ったとされる「持ち方が悪いんだよ」というジョークらしい。
2行目は、スター・ウォーズのセリフ”These aren’t the droids you’re looking for”。
“Pauline”はわからない。