IOCCC復活:C言語の人間マスターがAIをコード難読化で凌駕

Thenewstack

4年間の休止を経て、国際難読化Cコードコンテスト(IOCCC)は今年、23作品という前例のない数の受賞作を記録し、華々しい復活を遂げました。この記録的な受賞数は、提出された作品の異常なまでの質の高さを証明し、世界中のプログラマーによるC言語の並外れた習熟度を示しています。際立った受賞作の中には、見えないUnicode文字を巧みに使って完全なサーモンレシピを印刷するプログラムや、Atari 2600から精巧に再現された8ビットの音楽とグラフィックポートで審査員を記憶に残る「リックロール」したものがありました。

コンテスト創設者であるランドン・カート・ノールを含む審査員は、提出されたコードを分析するために大規模言語モデル(LLM)を試したことを明らかにしました。しかし、これらのAIモデルの結果はまちまちであり、最終的な審査プロセスには採用されませんでした。審査員は、人間のプログラマーが現在の人工知能の能力をはるかに超えるコードを作成する持続的な能力を強調しました。その顕著な例が、ある受賞者によって開発された750バイトのLLM推論エンジンであり、ノールは現在のAIモデルでは再現できない偉業だと考えています。悪名高い「リックロール」を含むすべての受賞作品のソースコードは、現在、専用のGitHubリポジトリで公開されており、IOCCCは2025年12月に再び開催される予定です。ノールが述べたように、「毎回のコンテストで、C言語でできると知らなかった新しいことが、人々によって示されるのです!」

今年のイベントでは、40年来の伝統である受賞者のライブ発表も復活しました。これは1980年代に遡り、Usenix会議の特別セッションで、最新のBSDリリースの発表の直後に行われることが多かった伝統です。ノールは、初期の頃、結果を「透明シートに印刷し、オーバーヘッドプロジェクターを使って」発表していたことをユーモラスに回想しました。これは今日のデジタルプロジェクションとは対照的です。以来、コンテストの主催者はインフラストラクチャを近代化し、コンパイルされた受賞作品のしばしば奇妙で鮮やかな出力を示すビデオを提供するようになりました。ノールは、デイビッド・マクインニスの助けを借りて、2025年に複数のビデオおよびオーディオフィードとオリジナル音楽を特徴とする凝った授賞式を企画し、各受賞作品が当然の注目を浴びるようにしました。

ノールは、4年間の長期休止が、意図せずして応募者に作品を洗練させるためのより多くの時間を与え、その結果、高品質な応募作品の急増につながったと考えています。過去のコンテストでは通常12〜15の賞が授与されていましたが、今年の23作品の受賞はこれまでのすべての記録を上回りました。非常に多くの優れた作品があったため、「ベスト・オブ・ショー」や「グランプリ」の受賞者はなく、非常に多くの作品が最高の栄誉に値すると判断されました。

AIの影響に関して、IOCCCで2度受賞し、長年審査員を務めるレオニード・A・ブルキスは、休止期間中にLLMをコード分析のためにテストできたと述べました。一部のモデルは、全体構造や数学的ロジックに基づいて特定の作品の目的を漠然と推測できましたが、他のモデルは「完全に途方に暮れていました」。ノールは、LLMが審査に使用されなかったこと、また将来の応募作品の作成にその使用を推奨しないことを明確に述べました。彼は、このような微妙なコンテストのためにAIが生成したコードは「ゴミ」である可能性が高く、コンパイルに失敗したり、見た目はC言語に似ていても機能しないことが多いと警告しました。ノールは、40年間の審査経験を振り返り、複雑なアイデアを小さく難読化されたチャンクに凝縮するために多大な努力とスキルを発揮できる人間プログラマーを「C言語のマスター」と称賛しました。LLMが将来の応募者にとって何らかの目的を果たす可能性はあるものの(おそらく、自分のコードがAIにとって本当に理解不能であるかどうかをテストするためなど)、ノールは、人間の要素が依然として最重要であることを強調しました。

プログラマーのヴィンス・ウィーバーが提出した悪名高いリックロールの作品は、ハイライトでした。審査員は、大量の定数宣言、フォークされた子プロセス、戦略的な遅延を含むコードの解読に困惑したプロセスを説明し、その後、数十年来のインターネットのいたずらの犠牲になったことに気づきました。このプログラムは、Atari 2600バージョンの荒削りな移植であり、8ビットの音楽とグラフィックが完備されていました。もう一つの驚くべき作品は、伝説的な難読化Cプログラマーである遠藤 雄介(Yusuke Endoh)によるもので、彼のプログラムは回転する物体の美しいASCIIアニメーションを表示し、回転する剛体の現実世界の物理学を実証しました。遠藤は、巧みに独楽の画像を、彼の高度に難読化されたソースコードの空白文字の中に埋め込んでいました。エイドリアン・ケーブルは、彼のLLM推論エンジンに加えて、2つ目の受賞作を提出しました。それは、一見無害な15行のプログラムでした。このコードは、誤解を招く変数宣言(unsigned int *salmon = U" is very yummy";)を含んでおり、魔法のように完全な焼きサーモンレシピを印刷しました。そのトリックは、標準のテキストエディタからは巧みに隠された、追加のコード行を形成する見えないUnicode文字と、混乱を招き、決して実行されないおとりforループにありました。この独創的な提出作品は、コンテストの「マーキーウォーターズ」賞を獲得しました。

今後、特別なGitHubリポジトリには、1984年以降のすべてのIOCCCのソースコードがホストされており、難読化されたCの歴史に簡単にアクセスできるようになりました。今後の計画には、過去の受賞者を紹介する短いビデオ、エントリーパッケージングツールの更新、コンテストのサーバーインフラストラクチャの改善が含まれています。次回のIOCCC登録期間は2025年12月に開始される予定で、主催者は最近の審査経験に基づいてコンテストルールを改訂・精緻化する計画です。現在、2020年12月以降、このプロジェクトに数千時間を費やしてきた審査員は、当然の休憩を取っており、電源を抜いて、応募者の素晴らしい作品の成果を楽しむことを楽しみにしています。