ICFPC − 今年のベスト言語コンテスト

一年に一度、国際関数型プログラミング学会ことICFPがあるプログラミングコンテストを主催する。
http://www.icfpcontest.org/

これこそ、世界同時・3日間ぶっつづけで行われ、優勝者には「その使用した言語がthe programming language of choice for discriminating hackers と呼ばれるという栄誉」が与えられるという、いわば年に一度のプログラミング言語頂上決戦なのだ。

となれば、参加するよりあるまい。

というか、去年とおととしも参加してるわけだが→ http://d.hatena.ne.jp/nushio/searchdiary?word=ICFP

さて、今年のテーマはこれである。

http://www.icfpcontest.org/task.shtml

西暦1967年、工事現場から発掘された未知の言語による巻物から、紀元前200年頃に、高度な文明が存在したことが明らかになっていた。彼らはコンピュータをも使っていた。それは街ほどの大きさで、流れる砂で情報を伝えていたという。ただし、このコンピュータは空想上の概念なのか、それとも実在したのかについては議論が分かれていた。

発掘された巻物の中には、非常に細かい文字で書かれた1冊の古文書がふくまれていた。何か重大な意味のあるものには間違いなかったが、いかんせん解読できないでいた。

そして2週間ほど前、一枚の石版が発見された。これこそ、待ち望まれていたロゼッタストーン:コンピュータの仕様書だったのである。


古文書がそのベールを脱いだ。
かの古文書こそ彼らのコンピュータのOSであり、それに保存された論文集であり、敵対文明による攻撃を受け滅亡したらしい彼らが、その文明の進化の集大成を後世に伝えんとしたものであった。


あなたの使命はこのOSとデータを解読し、なるべく多くの論文を読み出すことである。

OSにはいくつかのユーザが登録されており、各ユーザが開発したちょっと珍妙なアプリケーションと課題が入っています。
アプリケーションを使って課題をこなすと、文明の技術を理解してくれる後継者と認められるのか、論文のタイトルのようなものをもらえて、それを集めるほどスコアが入るという仕組みです。

今回はそういうふうに、小さな課題がたくさんあるオムニバス形式というかそんなんなので、やってもやってもやることがあって少々疲れました・・・ICPCを徹夜でやってるみたいな感じだったよ。

解読を進めていくと、古代文明人が何をしていて、どうして滅んだのかとか、ユーザー間の関係とかの「物語」が、ファイル構成などから垣間見えてくるようになっています。用意されている課題も、バラエティに富み、またいろんなアプローチの考えられる秀逸なものが揃っています。さらにシステムの完成度も高く、用意されたOSやアプリケーションにバグらしいものはほとんどありませんでした。

ICFPの問題にとどまらず、ゲームとしての価値があると思いますので、コンテストは見送ったかたがたも遊んでみられてはいかがでしょう。