どうもohbaです。
最初に断っておきますが今回はネタ回です。
この記事を真剣に捉えないでくださいね。(笑)
皆さん日頃コーディングする際どのような点を気をつけているでしょうか?
その一つに「読みやすいプログラミング」というのが有りますよね?
例えば、
- 関数、変数は分かりやすい名前にする
- コメントを適度に書く
- 構造が見えるようインデントを使用する
等々あると思います。
読みやすいプログラミングは保守性にも優れていて、バグの発見も容易でまた改修もやり易いといいこと尽くめです。
そんな読みやすいプログラミングの助けになる(?)サイトを紹介します。
今回紹介するのは「IOCCC」です。
これはThe International Obfuscated C Code Contestの略で、訳せば「国際難読Cコードコンテスト」となり、どれだけ読みづらいC言語のコードかを競うコンテストです。
1984年からほぼ毎年行われています。(2007~2010年は開催せれていませんでした。)
このコンテストの受賞コードと逆のことをやれば読みやすいプログラミングになりますよね(笑)
では、その一例を見てみましょう。
これは1987年の「Best One Liner」受賞作です。David Kornさんが作成されました。
void main(void) {printf(&unix[“21%six12”], (unix)[“have”]+”fun”-0x60);}
わかりますか?これは「unix」と表示するプログラムです。
私は(解説付きで)読むのに小一時間かかりました。
また、次ようなインパクトのあるプログラムもあります。
こちらは1995年の「Best Layout」受賞作品です。Heather Downsさん、Selene Makariosさんが作成されました。
※全体を見渡せるように画像化しています。
このプログラムは2つの引数を加算するプログラムなのですが、コード自体も半加算回路になっています。(笑)
その他面白いコードが公開されていますので一度見てみると面白いですよ。