最悪のスタイル
受賞者: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();が動かないので、そこだけ修正した。
exit();
パッチをダウンロード