Obfuscated C Contest
名詞
(正式には‘International Obfuscated C Code Contest’、すなわちIOCCC)Landon Curt Nollと仲間たちによって1984年以来Usenet上で運営されている年次コンテスト。総合優勝者は、最も読みにくく、独創的で、奇妙な(しかし動作する)Cプログラムを作った者である。その他さまざまな賞が審査員の気まぐれで授与される。Cの簡潔な構文とマクロプリプロセッサ機能は、参加者に多くの小細工の余地を与える。優勝プログラムはしばしば、(a)面白く、(b)息をのむような芸術作品であり、かつ(c)Cでコードを書く際にやってはいけないことのひどい見本である、という三つを同時に成し遂げてのける。
この比較的短くて小気味よい応募作は、難読化されたCの趣を伝えるのに役立つかもしれない。
/*
* HELLO WORLD program
* by Jack Applin and Robert Heckendorn, 1985
* (Note: depends on being able to modify elements of argv[],
* which is not guaranteed by ANSI and often not possible.)
*/
main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
(!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));
**c=!c)write(!!*c,*c,!!**c);}
もう一つの良い例を挙げよう。
/*
* Program to compute an approximation of pi
* by Brian Westley, 1988
* (requires pcc macro concatenation; try gcc -traditional-cpp)
*/
#define _ -F<00||--F-OO--;
int F=00,OO=00;
main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}
このプログラムは、自分自身の面積を計算することで動作することに注意せよ。もっと多くの桁が欲しければ、もっと大きなプログラムを書けばよい。hello worldも参照。
IOCCCには公式ホームページがある。http://www.ioccc.org/。