官术网_书友最值得收藏!

1.2.3 語義分析

語義分析器將語法分析樹與詞法分析中構(gòu)造的符號表相關(guān)聯(lián),檢查源程序是否滿足語言所定義的語義規(guī)則。語義分析器同時提取變量的類型信息,以便于中間代碼的生成。語義分析器輸出修飾語法樹,給語法樹賦予了語義信息。

例如,對于語法分析樹:

語義分析器分析等號右端表達(dá)式的類型是否與被賦值的變量i一致。當(dāng)ibc均為INT類型時符合語義規(guī)則。

語義分析的一個重要工作是做類型檢查,語義分析器檢查構(gòu)成表達(dá)式的每個運算分量是否具有符合語義規(guī)則的類型,如下標(biāo)應(yīng)為整數(shù),等號兩側(cè)的值類型應(yīng)當(dāng)相同等。

在第3章中,我們將討論以下內(nèi)容:

屬性文法,屬性文法是一種形式化方法,通過在語法分析樹上添加屬性,并基于添加的屬性進(jìn)行計算和推導(dǎo),若推導(dǎo)結(jié)果有矛盾則存在語義錯誤。

語法制導(dǎo)的定義,語法制導(dǎo)的定義將屬性文法和翻譯方案結(jié)合起來,并能夠快速反饋到源代碼層面,有助于快速修復(fù)源代碼中的錯誤。

●實現(xiàn)屬性文法和語法制導(dǎo)的算法。

主站蜘蛛池模板: 洛阳市| 辽阳县| 根河市| 周口市| 屏南县| 龙陵县| 顺昌县| 灵台县| 新干县| 若羌县| 临沭县| 印江| 上虞市| 安化县| 曲松县| 启东市| 彭山县| 枣阳市| 若尔盖县| 育儿| 云霄县| 日喀则市| 应用必备| 辽源市| 桦南县| 凉城县| 晋州市| 杭锦后旗| 叶城县| 古浪县| 连州市| 邓州市| 西充县| 新密市| 安新县| 印江| 雷州市| 萍乡市| 柞水县| 湖口县| 奈曼旗|