語義分析的任務:
- 負責檢查抽象語法樹的上下文相關屬性:
- 變量使用前献酗,需要事先定義
- 變量運算時扰藕,類型需要匹配
- 變量的作用域問題
- ......
- 做一些相關的優(yōu)化
上下文相關屬性的檢查方法:
- 關鍵在于構建一個變量的符號表用于存儲每個被定義的變量的相關屬性(類型,作用域溪北,引用數(shù)臼隔,等等....)沉填,每次做必要的語義分析的時候,直接訪問符號表霞扬,如果沒有找到變量的定義糕韧,則直接報錯枫振。
代碼等價優(yōu)化:
- 優(yōu)化時不能改變源程序代碼語義
- 優(yōu)化可以多種多樣,總是可以更好萤彩。
- 優(yōu)化代碼原則上可以出現(xiàn)在編譯器分析的各個階段粪滤。