![編譯原理編譯第九章_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/f9a8e36f-0406-419c-9bb3-2ede0fe7475a/f9a8e36f-0406-419c-9bb3-2ede0fe7475a1.gif)
![編譯原理編譯第九章_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/f9a8e36f-0406-419c-9bb3-2ede0fe7475a/f9a8e36f-0406-419c-9bb3-2ede0fe7475a2.gif)
![編譯原理編譯第九章_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/f9a8e36f-0406-419c-9bb3-2ede0fe7475a/f9a8e36f-0406-419c-9bb3-2ede0fe7475a3.gif)
![編譯原理編譯第九章_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/f9a8e36f-0406-419c-9bb3-2ede0fe7475a/f9a8e36f-0406-419c-9bb3-2ede0fe7475a4.gif)
![編譯原理編譯第九章_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/f9a8e36f-0406-419c-9bb3-2ede0fe7475a/f9a8e36f-0406-419c-9bb3-2ede0fe7475a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選ppt第九章 自上而下的語法分析第一節(jié) 引言一. 語法分析的功能符號串(二元式流)正確句子的語法樹報告語法錯誤語法分析程序精選ppt二. 語法分析方法的分類u語法分析: 自上而下(自頂而下) 自下而上(自底而上)u自上而下語法分析法:或從開始符號出發(fā),找最左推導(dǎo);或從根開始,構(gòu)造推導(dǎo)樹。u自下而上語法分析法:從輸入串開始,歸約,直至文法開始符。精選ppt第二節(jié) 回溯分析法一.一個實例 SxAy Aaba輸入串為xay,說明分析過程精選pptSx A ySx A ya bSx A ya精選ppt 二. 存在的問題(1)回溯公共左因子的存在 A1| 2(2)左遞歸 AA 或 AA (3)產(chǎn)生式
2、也會引起回溯 SaAS Sb AbAS A +精選ppt第三節(jié) 遞歸下降分析法一. 提取公共左因子 A1| 2| . |n| 改寫為:AB| B 1| 2| . |n 精選ppt例: SxAy Aaba 改寫為: SxAy AaB Bb精選ppt二. 左遞歸的消除(1)直接左遞歸的消除 PP改寫為:PP PP一般地 AA1|A2|Am|1|2|n (i,j不以A開頭)改寫為:A1P 2P. . . nP P 1P2P. . .mP精選ppt(2)間接左遞歸的消除 PP(a)將文法G的所有非終結(jié)符按任一給定的順序排列,設(shè)為A1,A2,An;+精選ppt(b)消除可能的左遞歸; for i:=1
3、to n do begin for j:=1 to i-1 do 把一個形如AiAj的產(chǎn)生式改寫為 Ai1|2|k 其中Aj1|2|k是Aj的所有產(chǎn)生式; 消除Ai產(chǎn)生式的直接左遞歸 end(c)化簡精選ppt以 SQcc QRbb RSaa為例,按S,Q,R排列,或R,Q,S排列精選pptu按S、Q、R排列, 代入后 SQcc QRbb R RbcabcacaaSQccQRbbRSaau消除R中的直接左遞歸 R bcaRcaRaR R bcaRu文法產(chǎn)生的語言:(bca|ca|a)(bca)*bc|bc|c精選pptu按R、Q、S排列, 代入后 RSaa QSababb SSabcabc b
4、cc SQccQRbbRSaau消除S中的直接左遞歸 SabcSbcScS SabcSu文法產(chǎn)生的語言:(abc|bc|c)(abc)*精選ppt三. 遞歸下降分析器的構(gòu)造 當改造文法為無公共左因子,無左遞歸時,讓每個非終結(jié)符對應(yīng)一個過程;該過程對相應(yīng)的非終結(jié)符產(chǎn)生式的右部短語進行語法分析精選ppt例: G(E) EE+TT TT*FF F(E) i消除左遞歸:ETEE+TETFTT*FTF(E)i精選pptu過程match:匹配單詞符號,并讀入下一符號u變量lookahead:即將處理但尚未處理的符號procedure match(t:token);begin if lookahead=t
5、then lookahead=nexttoken else errorend;精選pptprocedure E;begin T; Eend;procedure T;begin F; Tend;ETETFT精選pptprocedure E; if lookahead=+ then begin match(+); T; E end;procedure T; if lookahead=* then begin match(*); F; T end;E+TET*FT精選pptprocedure F; if lookahead=i then match(i) else if lookahead=( th
6、en begin match(); E; if lookahead=) then match() else error end else error;F(E)i精選pptETFiiM(i)ETFiiM(i)i+i*i#的遞歸下降分析過程+M(+)*#*TM(*)iF#TEM()#M(i)M()ETEE+TETFTT*FTF(E)iT+M()精選ppt四. 擴充的BNF(1)表示形式:u用花括號表示閉包運算* ;u用 表示可任意重復(fù)0次至n次 =0=;u用方括號表示 ,即表示的出現(xiàn)可有可無(等價于)n00010精選ppt例: 實數(shù)可定義為 decimal signinteger.digitexp
7、onent exponentEsigninteger integerdigitdigit sign+-精選ppt(2)左遞歸的消除 pxy. .zpv改寫成: p(xy. . .z)v精選ppt(3)文法的轉(zhuǎn)換圖表示產(chǎn)生式右端可用轉(zhuǎn)換圖表示。如: ET+T 表示成012T+精選ppt(4)遞歸下降分析器的改進procedure E;begin T; while lookahead=+ do begin match(+); T end end;精選pptprocedure T;begin F; while lookahead=* do begin match(*); F end end;精選pp
8、tprocedure F; if lookahead=i then match(i) else if lookahead=( then begin match(); E; if lookahead=) then match() else error end else error;精選ppti+i*i#的遞歸下降分析過程ETFiiM(i)TFiM(i)+iM(+)*FM(i)i#M(*)ET+TTF*FF(E)i精選ppt第四節(jié) 預(yù)測分析法 一. 預(yù)測分析過程1. 預(yù)測分析表 形式:MA,a矩陣, AVN,a VT# 內(nèi)容:A或出錯標志(空白)精選ppt預(yù)測分析表EETTFi+*()#ETEET
9、EE+TETFTTFTT*FTFiF(E)EETTT精選ppt2. 分析方法 初始時,#和開始符入棧,輸入指針指向第一個符號,然后根據(jù)下推棧棧頂符x和當前輸入符a進行工作:x=a=#, 成功x=a#, 匹配 xVN, 查表精選ppt例:i+i*i的分析過程下推棧輸入串查分析表i+i*i#E#ET#ETF#ET#ETi#E#ET#ET+i+i*i# +i*i#i+i*i#i+i*i# +i*i# +i*i# i*i#ETETFTTFTFiTE+TE精選ppt#ETF i*i#ETi#ET#ETF*#ETi#ETF#ET#E *i# i# *i# i# # # #T*FT結(jié)束FiT i*i#FiE
10、精選ppt二. FIRST集和FOLLOW集1FIRST集(1)定義:對(VTVN)*,有 FIRST()a|a. . . , aVT 若,則FIRST()(2)對文法符號XVTVN(3)當=X1X2Xn時*精選pptuXVT, 則FIRST(X)=X;uXVN, 分三種情形: Xa XY XY1Y2Yk精選ppt例子:X Y1Y2A Y1 y1 Y2 y2 A aFIRST(Y1)=y1, FIRST(Y2)=y2, FIRST(A)=a FIRST(X)=y1, y2, a精選ppt 2. FOLLOW集(1)定義:對AVN ,有 FOLLOW(A)=aS . . .Aa. . . ,aV
11、T 若S .A, 則#FOLLOW(A),其中S為開始符號*精選ppt(2)求法u# FOLLOW(S)uAB: 將FIRST()-加入FOLLOW(B)uAB或者AB且: 將FOLLOW(A)加入FOLLOW(B)注意: 求FOLLOW(B)實際上是考察B在產(chǎn)生式右端的每一次出現(xiàn)*精選ppt例: G(E) ETE E+TE TFT T*FT F(E)i精選pptEETTFFIRSTFOLLOW( i( i( i+ * ) #) #+ ) #+ ) #* + ) #ETEE+TETFTT*FT F(E)i精選ppt三. 預(yù)測分析表的構(gòu)造1. 構(gòu)造算法 對每個產(chǎn)生式A對aFIRST(),將A記入
12、MA,a中;若FIRST(),對bFOLLOW(A), 將A記入MA,b中;凡未被定義的MA,a項中標以出錯標志。精選ppt如: G(E) ETE E+TE TFT T*FT F(E)iEETTFFIRSTFOLLOW( i( i( i+ * ) #) #+ ) #+ ) #* + ) #精選ppt預(yù)測分析表EETTFi+*()#ETEETEE+TETFTTFTT*FTFiF(E)EETTTG(E) ETE E+TE TFT T*FT F(E)i精選ppt2. 預(yù)測分析表的改進MA,a中只記產(chǎn)生式右部;對=x1x2. . .xn, 在M,a中記xn xn-1. x1;當xn xn-1. x1的
13、x1VT時, x1必為a, x1無須入棧,只移動輸入指針。精選ppt四. LL(1)文法 設(shè) 上 下 文 無 關(guān) 文 法 G 的 產(chǎn) 生 式 形 如A1|2|n, 當G滿足下述條件時則稱為LL(1)文法:FIRST(i) FIRST(j)=, ij,i,j=1,2,. . .,n若i,則FIRST(j) FOLLOW(A)=, j=1,2,. . .,n且ji。 于是,在自頂向下分析時,可根據(jù)當前輸入符號a選擇aFIRST(i)的Ai。*精選ppt五. 非LL(1)文法的處理(1)并非任何文法G都可以改寫成LL(1)文法;(2)對非LL(1)文法可以根據(jù)語義進行處理。精選ppt例:下述文法具有二義性 S i C t Si C t S e Sa C b提取公共左因子后: S i C t S Sa S e S C b精選pptFIRST(S)=i, aFIRST(S)=e, FIRST
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 岸坡拋石工程施工方案
- 環(huán)保技術(shù)引領(lǐng)未來環(huán)境科學(xué)與城市發(fā)展
- 中小學(xué)生欺凌專項治理行動方案
- 現(xiàn)代通信技術(shù)在教育領(lǐng)域的應(yīng)用
- 2024年四年級英語上冊 Module 5 Unit 2 Can Sam play football說課稿 外研版(三起)001
- 2024八年級英語下冊 Unit 2 Plant a PlantLesson 7 Planting Trees說課稿(新版)冀教版
- 2024新教材高中政治 第二單元 經(jīng)濟發(fā)展與社會進步 第四課 我國的個人收入分配與社會保障 4.1《我國的個人收入分配》說課稿 部編版必修2
- Module4 Unit1 Mum bought a new T-shirt for me(說課稿)-2024-2025學(xué)年外研版(三起)英語五年級上冊
- 《6 蛋殼與薄殼結(jié)構(gòu)》(說課稿)-2023-2024學(xué)年五年級下冊科學(xué)蘇教版
- 2025北京市勞務(wù)分包合同范本問題范本
- 《住院患者身體約束的護理》團體標準解讀課件
- 中國心力衰竭診斷與治療指南解讀
- API520-安全閥計算PART1(中文版)
- 醫(yī)院信息科考核內(nèi)容標準細則
- 商務(wù)提成辦法
- 《統(tǒng)計學(xué)》完整袁衛(wèi)-賈俊平課件
- FZ/T 25001-1992工業(yè)用毛氈
- 電商部售后客服績效考核表
- 小提琴協(xié)奏曲《梁祝》譜
- 人教版高中化學(xué)必修一第一章《物質(zhì)及其變化》教學(xué)課件
- 復(fù)工復(fù)產(chǎn)工作方案范本【復(fù)產(chǎn)復(fù)工安全工作方案】
評論
0/150
提交評論