IOCCC(国際邪悪なCコードコンテスト)のススメ
自分の書いたコードが汚いなと思っていると、ふとIOCCCというものを思い出した。幸い、まだこのサイトでは取り上げられていないようなので記事をかくことにした。とりあえず日本語の紹介文をコピペしておく。
IOCCCとは「The International Obfuscated C Code Contest(国際邪悪なCコードコンテスト)」の略称。汚く読みづらいC言語コードをあえて書き、その汚さを競うというC言語ハッカーの奇祭である。むろんただ汚ければよいというわけではなく、目にした瞬間のインパクト、実行結果の美しさなど、さまざまな要因でアーティスティックなものが選ばれる。多くのコードはそもそも全くC言語に見えない。コード全体がアスキーアートになっているものなどが典型的である。 (Wikipediaより引用) 公式サイトの優勝作品一覧が2004年で止まっているのが気になるのだが、過去の作品だけでも非常におもしろい。 たとえば次のようなコードだ。
extern int
errno
;char
grrr
;main( r,
argv, argc ) int argc ,
r ; char *argv[];{int P( );
#define x int i, j,cc[4];printf(" choo choo\n" ) ;
x ;if (P( ! i ) | cc[ ! j ]
& P(j )>2 ? j : i ){* argv[i++ +!-i]
; for (i= 0;; i++ );
_exit(argv[argc- 2 / cc[1*argc]|-1<<4 ] ) ;printf("%d",P(""));}}
P ( a ) char a ; { a ; while( a > " B "
/* - by E ricM arsh all- */); }
機関車のAAのように見えるが、これでちゃんとC言語のソースコードになっている。そのうえ、実行結果として出力される文字列は「choo choo」となっている。(日本でいう「しゅっぽっぽー」みたいな擬音語)
このようなC言語への感謝と尊敬と憎しみを籠めて組まれたユーモアたっぷりのソースコードが公式ページには大量に置かれているので、興味のある方やC言語を一通り使いこなせている自信のある方は読んでみることをお勧めする。一部のソースコードはshコマンドで実行できたり、Makefileとしても動作可能になっていたりするので、C言語は読めないがLinuxがある程度わかる方も覗いてみるといい だらう。
ちなみに、わたしはC言語についてかなりのレベルで使いこなせていると自負している。だが、ここにあるソースコードのうちいくつかは未だに理解できていない。もしもここにあるソースコードを全て読みこなせるようになった時、きっとC言語への深い愛情と絶望を抱けるのではないかと期待している。
Recent Comments