人間Cコンパイラコンテスト(HCCC)とは文字通り競技者自身がCコンパイラとなり C言語からアセンブリを生成し,その時間と正確さを競う競技です.
与えられるソースコードの中にはコンパイルエラーを出す必要の ある仕様上間違ったものも含まれています.このような場合にはコンパイルエラーと解答する必要があります.
この競技の目的は競技を通じてアセンブリやC言語の仕様,ABIと仲良くなることです.
人力でCコンパイラと同じことをするというアプローチから普段使っているコンパイラの中身を解明し,アセンブリを書いて読んでデバッグすることで低レイヤの力をつけることを目標とします.
低レイヤにちょっと興味があるという方からCコンパイラ自作勢までレベル問わず広く募集します.
当日はSECCONCONイベント内のZoomで進行を行うので,参加される方は応募フォームの入力をお願いします.
競技と並行して入門編をライブで行う予定ですので,自分のレベル感に合わせて解説を聞いたり競技に戻ったりして頂いて構いません. 皆さんの参加をお待ちしてます.
第3回大会では問題の掲載/提出を行う競技システムと手元でデバッグするための検証環境を用意して以下のような規則で実施する.
$ uname -a
Linux 31d57f0f4274 6.5.4-arch2-1 #1 SMP PREEMPT_DYNAMIC Thu, 21 Sep 2023 11:06:39 +0000 x86_64 GNU/Linux
$ lld --version
Debian GLIBC 2.31-13+deb11u6
$ gcc --version
gcc (GCC) 12.2.0
$ as --version
GNU assembler (GNU Binutils for Debian) 2.35.2
$ ld --version
GNU ld (GNU Binutils for Debian) 2.35.2
2023/09/27
22:30:24