語義分析

編譯過程的邏輯階段

語義分析是審查源程序有無語義錯誤,為代碼生成階段收集類型信息。比如語義分析的一個工作是進行類型審查,審查每個算符是否具有語言規範允許的運算對象,當不符合語言規範時,編譯程序應報告錯誤。如有的編譯程序要對實數用作數組下標的情況報告錯誤。又比如某些某些程序規定運算對象可被強制,那麼當二目運算施於一整型和一實型對象時,編譯程序應將整型轉換為實型而不能認為是源程序的錯誤。

簡介


語義分析是編譯過程的一個邏輯階段. 語義分析的任務是對結構上正確的源程序進行上下文有關性質的審查, 進行類型審查.

片斷


例如一個C程序:
int arr【2】,b;
b = arr * 10;
源程序的結構是正確的. 語義分析將審查類型並報告錯誤:不能在表達式中使用一個數組變數,賦值語句的右端和左端的類型不匹配.