Worst Style

最悪のスタイル

受賞者:Spencer Hines

引用元:https://www.ioccc.org/1987/hines/hines.c

審査員・作者による説明:https://www.ioccc.org/1987/hines/hint.html

動作

テキスト中のgotoの数を教えてくれる。

$ gcc -o hines hines.c

$ ./hines hines.c
24    goto   's

$ cat tmp
gotogotogoto

$ ./hines tmp
3    goto   's

解説

識別子がgotoのアナグラムばかりで、9カラムのような形状。 1つの処理を何かやると必ずgotoを使って次の処理に飛ぶ、というコードになっている。

これはコーディングスタイルに関する時事ネタ。 1968年にDijkstraが構造化プログラミングを提唱する前後に書いた 「Go To Statement Considered Harmful(Go To文は有害と考えられる)」という文書が出て20年弱たったころで、gotoは絶対に使ってはいけないと盲信する人が増えていたところに、1987年3月のCommunications of the ACMに「”GOTO Considered Harmful” Considered Harmful」という反論記事が出て、議論が盛り上がっていた時期。 IOCCC 1987の締切は1987年5月30日なので、その記事を踏まえて作られたのではないかと思う。 少なくとも審査員はそれを踏まえて採択したようで、hint.textでも当該記事に触れている。

無引数のexit();が動かないので、そこだけ修正した。

パッチ

パッチをダウンロード