TT Lab
はじめる
学ぶ 学習パス コース

コンパイラ — 小さな言語を最初から最後まで作る

レキサーから x86-64 まで、小さな言語を自分で作る

고급 · レッスン 30 · ラボ 10

ラボを始める

カリキュラム

コンパイラの仕事 — 翻訳するか、すぐ実行するか

レキサー — 文字をトークンに、位置は最後まで

パーサー — 再帰下降と Pratt、そしてエラー回復

意味解析 — スコープと名前解決、分かるところの型

木をたどるインタプリタ — 環境とクロージャ

バイトコードとスタック VM — 定数プール、スロット、ジャンプの後埋め

中間表現と最適化 — 定数畳み込み、CFG、支配とSSA

x86-64 コード生成 — 呼び出し規約とスタックフレーム

レジスタ割り当てとガベージコレクション — 線形スキャンと mark-sweep

実務コンパイラを読む — gcc と clang の出力を数える

参考ドキュメント