資源簡介
目的:充分理解語義分析的方法及相關語義計算的執行時機。
要求:
1.以S屬性的語法制導定義為基礎,將下表的語義規則嵌套在語法分析的過程中,即實現語法制導的翻譯過程。
產 生 式 語 義 規 則
L ? E n print (E.val)
E ? E1 + T E.val := E1 .val + T.val
E ? T E.val := T.val
T ? T1 * F T.val := T1.val * F.val
T ? F T.val := F.val
F? (E) F.val := E.val
F ? digit F.val := digit.lexval
2.以詞法分析和語法分析部分的上機結果為基礎,添加語義分析部分。即以LR文法為基礎。當進行產生式歸約時執行對應的語義動作。
3.輸入:
5+3+8*2
輸出:24
4. 若輸入有誤,如:3++2
則應提示:重新輸入!
5. 由于輸入串是具體的數值,因此應調用相應的詞法分析的功能。
擴展:
1. 對浮點數和科學計數法的表示也能完成上述的操作。
2. 增加減法和除法(也可繼續擴展其他運算)對應的產生式,并能計算其語義結果。
3. 在郵箱中第五次上機的文件夾中有兩個壓縮包,用遞歸下降法實現的程序在壓縮包“recursion_calculator.rar”中,用非遞歸的預測分析方法實現的程序在壓縮包“predict_calculator.rar”中。可以任選其一作為基礎進行改進,增加減法和除法的操作,寫出改進后的文法,輸出表達式的結果。
代碼片段和文件信息
- 上一篇:東南大學數據庫往年試卷
- 下一篇:前端成長必經之路-組件化思維與技巧
評論
共有 條評論