人間Cコンパイラコンテスト(HCCC)とは文字通り競技者自身がCコンパイラとなり C言語からアセンブリを生成し,その時間と正確さを競う競技です.
競技者にはコンパイラ技術の知識だけでなく C言語の仕様やアセンブリ,多くのアーキテクチャに関する知識が要求されます.
以下をスコアとして算出し順位をつける.
- 人力でコンパイルするまでの時間(提出までの時間)
- 提出ファイルの大きさ
- テストケースの正答率
- テストケースの実行速度
- コンパイルエラーの精度(与えられたコードが仕様として間違っているとき)
- 既存のコンパイラを使用すること
- コンパイラやツールを自作して使用すること
- 他者と回答を共有すること
- アセンブリ内に特定の回答を不正に埋め込む行為
- 作問者通知
- 注意事項の連絡
- C言語のソースコードを参加者に配布
- 競技者がソースコードに応じてアセンブリを書いて提出
- 提出されたアセンブリを実行ファイルにしてテストケースを走らせる
- 結果発表
- 講評
- ソースコードの正しさ(与えられたプログラムが間違っておりエラーを出す必要がある場合もある)
- ソースコードの長さ
- ソースコードの構文の複雑さ(構造体のアライメントや未定義動作など)
- 複数のアーキテクチャ(x86_64, arm, risc-v, ppc, mips)
2021 11.21
Takana Norimasa
homepage: https://alignof.github.io/
github : https://github.com/Alignof/
Twitter : https://twitter.com/_Alignof