版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第5章 自上而下語法分析,編譯原理 陳炬樺 ,51 消除左遞歸方法,為了避免無限循環(huán),自上而下分析法的文法不應(yīng)含有左遞歸。有則消除。 文法的左遞歸性 直接左遞歸:UUx | y 間接左遞歸:U Ux 例:G22A: A B B X | BA X Xa | Xb | a | b,用擴(kuò)展的BNF表示法消除左遞歸, 零次或多次, mn次 零次或一次,可選項。 ( ) 描述提取公因子。 例:G標(biāo)識符: | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 a|b|c|e|f|g|h|i|j|k|m|n|o|p|q|r|s|t|u|v|w|x|y|z 顯然標(biāo)識符產(chǎn)生式有左遞
2、歸,可改寫為 | ,直接改寫法,UUx | y = UyU, U xU | UUx1 | Ux2 | Uxm | y1 | y2 yn = UU(x1 | x2 | xm) | (y1 | y2 yn) = U (y1 | y2 yn)U U (x1 | x2 | xm)U | ,直接改寫法舉例,例:G22A: A B B X | BA X Xa | Xb | a | b 改寫為: G22A: A B B XB B AB| X aX | bX X aX | bX | ,消除左遞歸算法, 將VN符號整理成序 Uk,k=1,n for i:=1 to n do begin j:=i+1 to n
3、do 替換 UiUj中的Uj 消除Ui產(chǎn)生式中的直接左遞歸 end 化簡,刪除多余產(chǎn)生式,消除左遞歸算法舉例,例5.4 設(shè)文法 ABcd B Ce | f C Ab | c 變換: B Ce | f = B Abe | ce | f ABcd = A Abecd | cecd | fcd 消除左遞歸 A cecdA | fcdA Abecd A| B Abe | ce | f C Ab | c 刪除多余產(chǎn)生式,LL(k)文法,最左推導(dǎo) 從左到右掃描輸入串 向前查看K(1)個符號,選擇產(chǎn)生式 本課程只討論LL(1),LL(1)文法的判斷條件,(VNVT)* FIRST()=a | a,aVT,(
4、VNVT)* UVN FOLLOW(U)= b | S xUby,bVT,x,y (VNVT)* 定義5.1 文法G是LL(1): U x1 | x2 | xn 如果 FIRST(xi)FIRST(xj)= 當(dāng)FIRST(xi)時,F(xiàn)IRST(xi)FOLLOW(U)=,集合FIRST、FOLLOW的構(gòu)造,FIRST()的構(gòu)造 VT,F(xiàn)IRST()= VN,a,a FIRST(); ,F(xiàn)IRST() VN,XY, FIRST(X)- FIRST(), 若X ,則FIRST(Y)- FIRST(),集合FIRST、FOLLOW的構(gòu)造,FOLLOW(U)的構(gòu)造 U是開始符號,則# FOLLOW(U
5、) AxUy, 則FIRST(y)- FOLLOW(U) AxUy,y , (包括AxU) 則FOLLOW(A) FOLLOW(U),構(gòu)造FIRST、FOLLOW舉例,例G27S SA ABA AiBA| BCB B+CB| C)A*|(,構(gòu)造分析表的算法, MU,a=U,aFIRST(); MU,b=U,bFOLLOW(U); MU,b=Error ,空白處;,例G27S SA ABA AiBA| BCB B+CB| C)A*|(,符號串(i(分析過程,5.4 遞歸下降分析程序及其設(shè)計,給每個非終結(jié)符設(shè)計一個相應(yīng)的子程序。 int fS()return fA(); int fA()if fB
6、() return fA(); else return Error; int fA() read(ch); if (ch= =i) if fB() return fA(); else return Error; else return OK; int fC()read(ch); if(ch= =) if fA() read(ch); return (ch= =*); else return Error; else return (ch= =() ,例G27S SA ABA AiBA| BCB B+CB| C)A*|(,例:已知文法GS: SeT | RT TDR | RdR | Da | bd 計算每個非終結(jié)符的FIRST、FOLLOW集。 構(gòu)造GS的LL(1)分析表。,例: 已知文法GS: SeT | RT TDR | RdR | Da | bd LL(1)分析表,已知文法GA: AAB | B BBC | C CD | D D(A)| i 消除左遞歸,計算每個非終結(jié)符的FIRST、FOLLOW集。 構(gòu)造GS的LL(1)分析表。,解: ABA ABA | BCB BC
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來五年家庭教師服務(wù)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 未來五年干制章魚企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 未來五年楓樹類樹苗企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 2026年玉溪市紅塔區(qū)教體系統(tǒng)公開招聘畢業(yè)生備考題庫(30人)有答案詳解
- 2025福建福州濱海實驗學(xué)校臨聘教師招聘2人備考題庫及答案詳解(考點梳理)
- 未來五年車載音頻企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 未來五年散尾葵企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 2026云南臨滄市住房和城鄉(xiāng)建設(shè)局招聘公益性崗位人員4人備考題庫及一套答案詳解
- 2025安徽蚌埠市懷遠(yuǎn)縣衛(wèi)生健康系統(tǒng)引進(jìn)高層次人才和急需緊缺專業(yè)人才30人備考題庫及1套參考答案詳解
- 2026江蘇南京大學(xué)SZYJ20260007智能科學(xué)與技術(shù)學(xué)院特任副研究員招聘1人備考題庫(含答案詳解)
- 急診預(yù)檢分診課件教學(xué)
- 2025年高二數(shù)學(xué)建模試題及答案
- 2026屆浙江省杭州城區(qū)6學(xué)校數(shù)學(xué)七年級第一學(xué)期期末教學(xué)質(zhì)量檢測試題含解析
- 儲能集裝箱知識培訓(xùn)總結(jié)課件
- 幼兒園中班語言《雪房子》課件
- 房地產(chǎn)項目開發(fā)管理方案
- 堆垛車安全培訓(xùn)課件
- 貝林妥單抗護(hù)理要點
- 衛(wèi)生院關(guān)于成立消除艾滋病、梅毒、乙肝母嬰傳播領(lǐng)導(dǎo)小組及職責(zé)分工的通知
- 廣東省執(zhí)信中學(xué)、廣州二中、廣州六中、廣雅中學(xué)四校2025年高三物理第一學(xué)期期末學(xué)業(yè)水平測試試題
- 小學(xué)語文教學(xué)能力提升策略
評論
0/150
提交評論