freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

第六章屬性文法和語法制導翻譯(編輯修改稿)

2025-08-17 17:12 本頁面
 

【文章內容簡介】 在符號表中的入口 。 ? mkleaf (num,val) 建立一個數(shù)結點 , 標號為 num, 一個域 val用于存放數(shù)的值 。 國防科技大學計算機系 602教研室 建立抽象語法樹的語義規(guī)則 產 生 式 語 義 規(guī) 則 E→E1+T := mknode( ‘+’, , ) E→E1T := mknode( ‘’, , ) E→T := T→ (E) := T→id := mknode( id, ) T→num := mknode( num, ) 國防科技大學計算機系 602教研室 a- 4+ c的抽象語法樹 E nptr T nptr E nptr To entry for a E T nptr id T nptr id id id num 4 + To entry for c 國防科技大學計算機系 602教研室 S屬性文法的自下而上計算 ? S屬性文法 :只含有綜合屬性 ? 綜合屬性可以在分析輸入符號串的同時由自下而上的分析器來計算。 ? 分析器可以保存與棧中文法符號有關的綜合屬性值,每當進行歸約時,新的屬性值就由棧中正在歸約的產生式右邊符號的屬性值來計算。 國防科技大學計算機系 602教研室 ? 在分析棧中使用一個附加的域來存放綜合屬性值 ? 假設語義規(guī)則 :=f(,)是對應于產生式 A→XYZ的 S m Z .z Z S m 1 Y. y Y S m 2 X .x X ? ? ? S 0 — TOP S’ m 2 A. a A ? ? ? S 0 — TOP 國防科技大學計算機系 602教研室 產生式 代 碼 段 L→En print(val[top]) E→E1+T val[ntop] := val[top2]+val[top] E→T T→T1*F val[ntop] := val[top2]*val[top] T→F F→ (E) val[ntop] :=val[top1] F→digit 國防科技大學計算機系 602教研室 輸入 state sym val 用到的產生式 3*5+4n 0 *5+4n 05 3 3 *5+4n 03 F 3 F→digit *5+4n 02 T 3 T→F 5+4n 027 T* 3 +4n 0275 T*5 3 5 +4n 02710 T*F 3 5 F→digit +4n 02 T 15 T→T*F 國防科技大學計算機系 602教研室 輸入 state sym val 用到的產生式 +4n 01 E 15 E→T 4n 016 E+ 15 n 0165 E+4 15 4 n 0163 E+F 15 4 F→digit n 0169 E+T 15 4 T→F n 01 E 19 E→E+T En 19 L 19 L→En 國防科技大學計算機系 602教研室 L屬性文法和自頂向下翻譯 ? 通過深度優(yōu)先的方法對語法樹進行遍歷,計算屬性文法的所有屬性值 ? LL( 1): 自上而下分析方法,深度優(yōu)先建立語法樹 國防科技大學計算機系 602教研室 ? 一個屬性文法稱為 L屬性文法 ,如果對于每個產生式 A→X1X2…X n, 其每個語義規(guī)則中的每個屬性或者是綜合屬性,或者是Xj(1?j?n)的一個繼承屬性且這個繼承屬性僅依賴于: (1) 產生式 Xj的左邊符號 X1, X2, … , Xj1的屬性; (2) A的繼承屬性。 ? S屬性文法一定是 L屬性文法 國防科技大學計算機系 602教研室 產 生 式 語 義 規(guī) 則 A→LM := l() :=m() A→QR := r() :=q() :=f() 國防科技大學計算機系 602教研室 翻譯模式 ? 翻譯模式 :給出了使用語義規(guī)則進行計算的次序 , 這樣就可把某些實現(xiàn)細節(jié)表示出來 ? 在翻譯模式中 , 和文法符號相關的屬性和語義規(guī)則 ( 這里我們也稱 語義動作 ) ,用花括號 { }括起來 , 插入到產生式右部的合適位置上 國防科技大學計算機系 602教研室 ?翻譯模式示例:把帶加號和減號的中綴表達式翻譯成相應的后綴表達式 E→TR R→addop T {print()} R1 | ? T→num {print()} 例: 95+2 E T R 9 {print(‘9’)} T R 5 {print(‘5’)} {print(‘’)} + T 2 {print(‘2’)} R {print(‘+’)} ? 國防科技大學計算機系 602教研室 ? 設計翻譯模式時,必須保證當某個動作引用一個屬性時它必須是有定義的。 ? L屬性文法本身就能確保每個動作不會引
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1