Read OSS

ziglang/zig

5 articles

前提知識

01

Zigコンパイラのアーキテクチャ:コードベースを読むための地図

Zigコンパイラのアーキテクチャ、ディレクトリ構造、コンパイルパイプラインを俯瞰し、中核となる構造体・IRチェーン・ブートストラッププロセスを解説します。

02

ソースコードからZIRへ:Zigコンパイラのフロントエンド

トークナイザ、再帰降下パーサ、そしてAstGenフェーズを深掘りし、Zigのソースコードを型なし中間表現であるZIRへ変換する仕組みを解説します。

03

意味解析と InternPool:コンパイラの心臓部

コンパイラ最大のファイルである Sema.zig を解説します。ZIR を型付きの AIR へと変換する仕組みと、すべての型・値を u32 インデックスとして格納する InternPool の設計を掘り下げます。

04

コード生成とリンク: AIR からバイナリへ

AIR がバックエンド固有の MIR を経由してマシンコードへと変換される仕組みと、セルフホスト型リンカーが最終バイナリを組み立てるプロセスを解説します。

05

コンパイルのオーケストレーション、キャッシュ、インクリメンタルコンパイル

Compilation.update() ループ、3つのキャッシュモード、InternPool の依存関係追跡、PerThread スレッディングモデル、そしてマルチステージブートストラップ。