




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第六章 屬性文法和語法制導(dǎo)翻譯,6.1 屬性文法 6.2 基于屬性文法的處理方法 6.3 S-屬性文法的自下而上計(jì)算 6.4 L-屬性文法和自頂向下翻譯 6.5 自下而上計(jì)算繼承屬性,6.4 L-屬性文法和自頂向下翻譯,6.4.1 翻譯模式 6.4.2 自頂向下翻譯 6.4.3 遞歸下降翻譯器的設(shè)計(jì),L-屬性文法,L-屬性文法可通過一次遍歷就計(jì)算出所有屬性值。 諸如LL(1)這種自上而下分析方法的分析過程,從概念上說可以看成是深度優(yōu)先建立語法樹的過程 我們可以在自上而下語法分析的同時(shí)實(shí)現(xiàn)L-屬性文法的計(jì)算。,L-屬性文法,一個(gè)屬性文法稱為 L-屬性文法 如果對于每個(gè)產(chǎn)生式 AX1X2Xn, 其
2、每個(gè)語義規(guī)則中的每個(gè)屬性或者是綜合屬性, 或者是Xj(1=j= n)的一個(gè)繼承屬性 , 且這個(gè)繼承屬性僅依賴于: (1) 產(chǎn)生式Xj的左邊符號X1,X2,Xj-l的屬性 (2) A的繼承屬性 S-屬性文法一定是L-屬性文法,L-屬性文法的例子 6.1 節(jié) 表6.1 表6.2,表6.7 非L-屬性文法的例子,因?yàn)?Q.i 依賴于右部符號R的綜合屬性R.s,6.4.1 翻譯摸式,翻譯模式(Translation schemes) 一種適合語法制導(dǎo)翻譯的另一種描述形式。 在翻譯模式中,和文法符號相關(guān)的屬性和語義規(guī)則(語義動作),用花括號括起來,插入到產(chǎn)生式右部的合適位置上。,R addop T R,
3、 print( addop.lexme) R,ET R R addop T print( addop.lexme) R | T num print( num. lexme) ,例: 將含有+和-運(yùn)算的中綴表達(dá)式翻譯為后綴形式,如 表達(dá)式 9-+2 后綴表示為 9 - 2 +,翻譯模式給出了使用語義規(guī)則進(jìn)行計(jì)算的次序,這樣就可把某些實(shí)現(xiàn)細(xì)節(jié)表示出來。,圖6.10 9+2 的說明動作的語法分析樹,E,T,R,9,print(9),T,print(),R,5,print(5),+,T,print(+),2,print(2),R,1,2,3,4,5,把語義動作看作是終結(jié)符號 按深度優(yōu)先次序遍歷分析樹,
4、即得到,9,5,2,ET R R addop T print( addop.lexme) R | T num print( num. lexme) ,參考輸出后綴式的屬性文法,例如,假設(shè)有下面的產(chǎn)生式和語義規(guī)則: T T1* F T. val := T1.val * F. val 建立翻譯模式: T T1* F T. val := T1. val * F. val,只需要綜合屬性時(shí), 可以這樣建立翻譯模式: 為每一個(gè)語義規(guī)則建立一個(gè)包含賦值的動作, 并把這個(gè)動作放在相應(yīng)的產(chǎn)生式右邊的末尾。,如果既有綜合屬性又有繼承屬性,在建立翻譯模式時(shí)就必須滿足三個(gè)條件 (1)產(chǎn)生式右邊的符號的繼承屬性必須在
5、這個(gè)符號以前的動作中計(jì)算出來。 (2)一個(gè)動作不能引用這個(gè)動作右邊的符號的綜合屬性。 (3)產(chǎn)生式左邊非終結(jié)符的綜合屬性只有在它所引用的所有屬性都計(jì)算出來以后才能計(jì)算。計(jì)算這種屬性的動作通??煞旁诋a(chǎn)生式右端的末尾。,下面的翻譯模式不滿足上述三個(gè)條件中的第一個(gè)條件: (1)產(chǎn)生式右邊的符號的繼承屬性必須在這個(gè)符號以前的動作中計(jì)算出來。 SA1 A2 A1. in:=1; A2. in:=2 Aa print(A. in) ,可以改為 S A1. in:1 A1 A2. in:=2 A2,print(A.in),1,print(A.in),2,A1. in:1; A2. in:=2,3,該屬性還沒
6、有定義,S A1. in:1 A1 A2. in:=2 A2,print(A.in),1,print(A.in),S,A,a,A,a,2,A2. in:=2,3,A1. in:1,4,例: 給定一個(gè)L-屬性文法, 建立一個(gè)滿足上述三個(gè)條件的翻譯模式。,基于數(shù)學(xué)格式語言EQN 給定輸人E sub 1 .Val EQN把E,1和.val分別按不同的大小放在相關(guān)的位置上,如圖所示。,圖6.11 盒子的語法制導(dǎo)安放,非終結(jié)符B(表示盒子)代表一個(gè)公式, 產(chǎn)生式BBB 代表兩個(gè)盒子并置, BB1 sub B2 代表B2的大小比B1的小,并且放在下角標(biāo)的位置,表6.8 盒子大小和高度的屬性文法,使B2.p
7、s減少30%,把盒子B2向下放置,繼承屬性ps影響 公式的高度,綜合屬性B.ht代表 B的高度,查表獲得,S B.ps := 10 BS.ht := B.ht B B1.ps := B.ps B1B2.ps := B.ps B2B.ht := max(B1.ht, B2.ht ) B B1.ps :=B.ps B1 sub B2.ps := shrink(B.ps) B2B.ht := disp (B1.ht, B2.ht ) B textB.ht := text.h B.ps ,圖6.12 從表6.8構(gòu)造出的翻譯模式,為文法 G:S ( L ) | a L L , S | S 寫一個(gè)翻譯方案
8、,它輸出每個(gè)a的嵌套深度 例如:對于( a , ( a , a) ) ,輸出的結(jié)果是 1 2 2,S S. depth := 0 S S L. depth := S. depth + 1 ( L ) S a print (S. depth) L L1. depth := L. depth L1 , S. depth := L. depth S L S. depth := L. depth S,補(bǔ)充例1,S,(,L,),L,S,S S. depth := 0 S S L. depth := S. depth + 1 ( L ) S a print (S. depth) L L1. depth :
9、= L. depth L1 , S. depth := L. depth S L S. depth := L. depth S,( a , ( a , a) ),S,a,(,L,),L,S,S,a,a,0,1,1,1,1,1,2,2,2,2,2,2,為文法 G:S ( L ) | a L L , S | S 寫一個(gè)翻譯方案,打印出每個(gè)a在句子中是第幾個(gè)字符 例如,當(dāng)句子是 ( a , ( a , ( a , a ) , (a) ) )時(shí), 打印的結(jié)果是 2 5 8 10 14,補(bǔ)充例2,S S. in := 0 S S L. in := S. in + 1 ( L ) S. out := L.
10、 out + 1 S a S. out := S. in + 1; print (S. out) L L1. in := L. in L1 , S. in := L1. out + 1 S L. out := S. out L S. in := L. in S L. out := S. out ,L. in := S. in + 1,S. out := L. out + 1 ,L1. in := L. in ,S. in := L1. out + 1 ,L. out := S. out ,S. in := L. in ,L. out := S. out ,S. out := S. in + 1; print (S. out) ,S. out := S. in + 1; print (S. out) ,S,(,L,),L,S,S,a,a,S.in=0,S S. in := 0 S S L. in := S. in + 1 ( L ) S. out := L. out + 1 S a S. out := S. in + 1; prin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技產(chǎn)業(yè)園區(qū)物流規(guī)劃與技術(shù)支持
- 科技助力社區(qū)綠化智能化管理與生態(tài)改善
- 乙方租憑合同范本
- 知識版權(quán)如何塑造企業(yè)信任度
- 個(gè)人辦公設(shè)備買賣協(xié)議
- 知識產(chǎn)權(quán)實(shí)務(wù)與教育創(chuàng)新
- 學(xué)校購買led合同范本
- 電影音樂與劇情的完美融合
- 勞動合同續(xù)簽如何處理爭議
- 科技植物園神奇植物的科技應(yīng)用探索
- 公司員工獎(jiǎng)懲制度流程
- 星巴克案例分析-星巴克成功之道
- 靜脈炎預(yù)防和處理課件
- 船舶種類與特點(diǎn)
- 2023年中國兵器人才學(xué)院校園招聘筆試參考題庫附帶答案詳解
- 曲軸加工工藝卡片
- 危險(xiǎn)化學(xué)品建設(shè)項(xiàng)目竣工驗(yàn)收報(bào)告
- 客房理論知識考試題庫(500題)
- 烏魯木齊超低溫歐斯博熱泵供暖制冷設(shè)計(jì)方案
- 婦產(chǎn)科學(xué)(第9版)第三章 女性生殖系統(tǒng)生理
- LY/T 2241-2014森林生態(tài)系統(tǒng)生物多樣性監(jiān)測與評估規(guī)范
評論
0/150
提交評論