コンパイラ
字句解析
文字列を(名前|予約語|区切り記号)などの最小単位(トークン)に分解する.
構文解析
字句解析で切り出された字句を構文木にする.
プログラミング言語の構文規則に則っているかチェックする.
意味解析
変数の宣言と使用の対応やデータ型の整合性のチェックを行う.
最適化のため,構文解析の結果をもとに逆ポーランド表記法や四つ組,三つ組となどの形式の中間コードに変換する.
最適化
プログラムのサイズを小さくする,あるいは実行時間が短くなるように計算順序を変更したり変数を定数にしたりする.
コード生成