コンパイラの論理的構造
読み込み
通常はプラグラムを行単位で読み込む
字句解析
プログラムの文字列を1字1字調べながら、プログラミング言語の基本要素を切り出していく。
(例)
(a + b) * c - d / e
=>
(
,
a
,
+
,
b
,
)
,
*
,
c
,
-
,
d
,
/
,
e
構文解析
どの部分が文法のどの規則に対応するかを解析し、文法的に正しい形をしているかどうか判定すること。
構文解析の結果として、木構造状態のものが出力される。
これを
構文木(抽象構文木)
という。
中間後生成
最適化
目的コード生成