自下而上語法分析.ppt
《自下而上語法分析.ppt》由會員分享,可在線閱讀,更多相關(guān)《自下而上語法分析.ppt(56頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,若文法G的任何產(chǎn)生式的右部都不含兩個相繼的非終結(jié)符, 稱文法為算符文法。 即:不含形如:UVW 的產(chǎn)生式,U、V、WVN,G1S: S E E ET | T T T*F | F F PF | P P (E)| i,G2E: E TE E +TE |,5.3 算符優(yōu)先分析法5.3.1 算符優(yōu)先文法及優(yōu)先表構(gòu)造,1. 算符文法,2. 優(yōu)先關(guān)系:設(shè)G是算符文法,不含 P產(chǎn)生式, 對于任何一對終結(jié)符 a,b a b G中存在形如:Pab 或 PaRb 的產(chǎn)生式; a. b G中存在形如:P aR 的產(chǎn)生式, 且R b 或 R Q b ; a .b G中存在形如:P 的產(chǎn)生式,
2、 且R a 或 R a Q ;,,G1S: SE EET | T TT*F | F FPF | P P(E)| i,S#E# # # P (E) ( ) 2) S#E# E=ET # T * F ET # EET E=ET ,設(shè)有算符文法G,如果其任意兩個終結(jié)符號之間,最 多只有一種算符優(yōu)先關(guān)系成立,稱G為算符優(yōu)先文法。 算符優(yōu)先文法是無二義的。,3. 算符優(yōu)先文法,4. 優(yōu)先表,二維表,行標(biāo)、列標(biāo)VT ,表項:存放優(yōu)先關(guān)系 Aa,b= a b Aa,b= a b Aa,b= a b,,,G1S: S E E ET | T T T*F | F F PF |
3、P P (E)| i,優(yōu)先表,對優(yōu)先關(guān)系: # # ( ) # # ,沒有優(yōu)先關(guān)系,FirstVT(P)= a | P a 或 P Q a a VT , P、Q VN ( P推導(dǎo)出的符號串的第一個終結(jié)符構(gòu)成的集合) LastVT(P) = a | P a 或 P a Q a VT , P、Q VN ( P推導(dǎo)出的符號串的最后一個終結(jié)符構(gòu)成的集合),6.計算FirstVT集合,若有 P a 或 PQ a ,則 aFirstVT(P) 若 aFirstVT(Q),且 PQ ,則 aFirstVT(P),5. 定義集合,若有 P a 或 PQ a ,則 aFirstV
4、T(P) 若 aFirstVT(Q),且 PQ ,則 aFirstVT(P),,For (PVN , a VT) do FP,a=.F. ; For (P a 或PQa ) do insert(P,a); While stack非空 do 彈出stack棧頂組對(P,a); RP do insert(R,a); ,Proc insert(P,a) if FP,a=.F. then FP,a=.T.; (P,a)入stack; ,引入: 棧stack,存放二元組對 (P,a) 布爾數(shù)組F, FP,a=.T.aFirstVT(P),,算法:,,,GS:S#E# EE
5、+T|T TT*F|F FPF|P P(E)|i,For (PVN , a VT) do FP,a=.F. ; For (P a 或PQa ) do insert(P,a); While stack非空 do 彈出stack棧頂組對(P,a); RP do insert(R,a); ,Proc insert(P,a) if FP,a=.F. then FP,a=.T.; (P,a)入stack; ,,,,For (PVN , a VT) do FP,a=.F. ; For (P a 或PQa ) do insert(P,a); While stack非空 do
6、 彈出stack棧頂組對(P,a); RP do insert(R,a); ,Proc insert(P,a) if FP,a=.F. then FP,a=.T.; (P,a)入stack; ,GS:S#E# EE+T|T TT*F|F FPF|P P(E)|i,,,GS: S#E# EE+T|T TT*F|F FPF|P P(E)|i,FirstVT(S)=# FirstVT(E)=+,*,,( ,i FirstVT(T)=*,,( ,i FirstVT(F)=,( ,i FirstVT(P)=( ,i ,求FirstVT: FP,a=.T. aFirstVT(P),布爾數(shù)組
7、F,,若有P a 或P aQ 則 aLastVT(P) 若aLastVT(Q) ,且 PQ, 則 aLastVT(P),算法: 與計算 FirstVT集合類似,GS: S#E# EE + T | T TT * F | F FPF | P P(E) | i,LastVT(S)= # LastVT(E)=+,*,,i , ) LastVT(T)=*,, i , ) LastVT(F)=, i , ) LastVT(P)= i , ) ,7.計算LastVT集合,For ( A X1 X2 XN ) do For i:=1 To N1 do if (XiVT)and(Xi+1VT ) then
8、Xi Xi+1 ; if (XiVT )and(Xi+1VN ) and (Xi+2VT ) then Xi Xi+2; if (XiVT)and(Xi+1VN ) then bFirstVT(Xi+1) Xi Xi+1 ; ,8.構(gòu)造優(yōu)先表算法,,S#E# # # ## 2) EET (aLastVT(E)) <(bFirstVT(T)) 3) ET 不影響,GS: S#E# EE + T | T TT * F | F FPF | P P(E) | i,,GS: S#E# EE + T | T TT * F | F FPF | P P(E) | i,4) TT
9、* F (aLastVT(T)) * * < (bFirstVT(F)),,7) FP 不影響 8) P( E ) ( ) () 9) Pi 不影響,GS: S#E# EE + T | T TT * F | F FPF | P P(E) | i,短語:令GS是一文法,是文法G的一個句型;如果有:S A,且 A ; 稱是句型相對于非終結(jié)符A的短語。 2. 素短語:一種短語,它至少包含一個終結(jié)符,且除自身外不再包含更小的素短語。 3.最左素短語:處于句型最左邊的素短語。 算符優(yōu)先分析法的可歸約串最左素短語。,5.3.2 算符優(yōu)先分析算法,,句型:P1*(P2)+P3,短語:P1 , P2 , (
10、P2), P1*(P2), P3 , P1*(P2)+P3 素短語:(P2) 最左素短語:(P2),,GS:S#E# EE + T | T TT * F | F FPF | P P(E) | i,語法樹,,短語:P1 , P2 , P1*P2 , P3 , P4 , P3*P4 , P1*P2+P3*P4 素短語: P1*P2 , P3*P4 最左素短語: P1*P2,句型:P1*P2+P3*P4,,語法樹,GS:S#E# EE + T | T TT * F | F FPF | P P(E) | i,若句型為:# N1 a1 N2 a2 ...Nn an Nn+1 #
11、 Ni VN , ai VT 最左素短語是滿足下列條件的最左子串 Nj aj Nj+1 aj+1 ... Ni-1 ai-1 Ni ai Ni+1 1) aj-1. aj 2) 3) ai .ai+1,aj aj+1 ... ai-1 ai,4. 定理,找出句型中的最左素短語,選擇一條合適的產(chǎn)生式, 將最左素短語歸約為該產(chǎn)生式的左部符號。重復(fù)上述 過程,直至句型中只存在一個符號,并且是非終結(jié)符 號,則輸入串是句子。 選用合適產(chǎn)生式的標(biāo)準(zhǔn): 最左素短語 x1 x2 xn , 產(chǎn)生式右部 y1 y2 yn 若: xiVT 則 yiVT 且 xiyi 若: xiVN 則 yiVN
- 溫馨提示:
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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案