版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第四章習題:考慮上下文沒關文法:S->SS+|SS*|a以及串a(chǎn)a+a*(1)給出這個串的一個最左推導->SS*->SS+S*->aS+S*->aa+S*->aa+a*(3)給出這個串的一棵語法剖析樹習題:下邊是一個只包括符號a和b的正則表達式的文法。
它使用
+代替表示并運算的符號
|,以防止和文法中作為元符號使用的豎線相混雜:rexprrexpr+rterm|rtermrtermrtermrfactor|rfactorrfactorrfactor*|rprimaryrprimarya|b1)對這個文法提取公因子2)提取公因子的變換使這個文法合用于自頂向下的語法剖析技術嗎3)提取公因子以后,原文法中除去左遞歸4)獲得的文法合用于自頂向下的語法剖析嗎解提取左公因子以后的文法變成rexprrexpr+rterm|rtermrtermrtermrfactor|rfactorrfactorrfactor*|rprimaryrprimarya|b不能夠,文法中存在左遞歸,而自頂向下技術不合適左遞歸文法除去左遞歸后的文法rexpr->rtermrexpr’rexpr-’>+rtermrexprrterm->rfactorrtermrterm-’>rfactorrtermrfactor->rprimayrfactorrfactor->’*rfactor’|rprimary->a|b
’|’’|’4)該文法無左遞歸,合適于自頂向下的語法剖析習題:為下邊的每一個文法設計一個展望剖析器,提取左公因子或除去左遞歸
并給出展望剖析表。可能要先對文法進行(3)S->S(S)S|(5)S->(L)|a
L->L,S|S解(3)①除去該文法的左遞歸后獲得文法S->S’S’->(S)SS’|用類Pascal語言結構的一個展望剖析器:PROCEDURESBEGINS;WHILE(lookahead==(')’THENBEGINmatch('(');S;match(')');END;ELSEIF(lookahead=='a')THENmatch('a')ELSEerrorEND;②計算FIRST和FOLLOW會合FIRST(S)={(,}
FOLLOW(S)={),$}FIRST(S’)={(,
}
FOLLOW(S’)={),$}③建立展望剖析表非終結符號
輸入符號(
)
$S
S->S’
S->S’
S->S’S’
S’->(S)SS’
S’->
S’->(5)①除去該文法的左遞歸獲得文法S->(L)|aL->SL’L’->,SL’|用類Pascal語言的一個展望剖析器:PROCEDURESBEGINif(lookahead==(')’THENBEGINmatch('(');L;match(')');END;ELSEIF(lookahead=='a')THENmatch('a')ELSEerrorEND;PROCEDUREL;BEGINS;WHILE(lookahead==',');BEGINmatch(',');S;END;END;②計算FIRST與FOLLOW會合FIRST(S)={(,a}
FOLLOW(S)={),,$}FIRST(L)={(,a}
FOLLOW(L)={)}FIRST(L’)={,,
}
FOLLOW(L’)={)}③建立展望剖析表非終結符號
輸入符號(
)
,
a
$S
S->(L)
S->aL
L->SL’
L->SL’L’
L’->
L’->,SL’習題計算練習的文法的FIRST和FOLLOW會合3)SS(S)S|5)S(L)|a,LL,S|S解:3)FIRST(S)={,(}5)FIRST(S)={(,a}
FOLLOW(S)={(,),$}FOLLOW(S)={),,$}FIRST(L)={(,a}FOLLOW(L)={),}習題為練習中的增廣文法結構SLR項集,計算這些項集的GOTO函數(shù),給出這個文法的語法剖析表。這個文法是SLR文法嗎SSS+|SS*|a解:①結構該文法的增廣文法以下S’->SS->SS+S->SS*S->a②結構該文法的LR(0)項集以下I0I1I2I3I4I5S’->.SS’->S.S->a.S->SS.+S->SS+.S->SS*.S->.SS+S->+S->SS.*S->.SS*S->*S->.SS+S->+S->.aS->.SS*S->*S->.SS+S->.aS->.SS*S->.aGOTO函數(shù)以下GOTO(I0,S)=I1GOTO(I0,a)=I2GOTO(I1,S)=I3GOTO(I1,a)=I2GOTO(I1,$)=accGOTO(I3,S)=I3GOTO(I3,+)=I4GOTO(I3,*)=I5GOTO(I3,a)=I2④結構該文法的語法剖析表狀態(tài)ACTIONGOTO+*a$S0S211S2acc32R3R3R3R33S4S5S234R1R1R1R15R2R2R2R2注:FOLLOW(S’)=FOLLOW(S)={+,*,a,$}這個文法是SLR文法,由于語法剖析表中沒有重復的條目習題說明下邊文法SSA|AAa是SLR(1)的,而不是LL(1)的。證明:能夠求得FIRST(SA)=FIRST(A)={a},故該文法不是LL(1)文法結構該文法的增廣文法的語法剖析表以下①結構增廣文法S’->SS->SAS->AA->a②結構LR(0)項集族I0I1I2I3I4S’->.SS’->S.S->A.A->a.S->SA.S->.SAS->S->.AA->.aA->.aGOTO函數(shù)以下GOTO(I0,S)=I1GOTO(I0,A)=I2GOTO(I0,a)=I3GOTO(I1,A)=I4GOTO(I1,a)=I3GOTO(I1,$)=acc④建立語法剖析表以下(FOLLOW(A)=FOLLOW(S)={a,$})狀態(tài)ACTIONGOTOa$SA0S3121S3acc42R2R23R3R34R1R1能夠看到該語法剖析表中沒有重復的條目故該文法是SLR(1)文法習題說明下邊的文法S->Aa|bAc|dc|bdaA->d是LALR(1)的,但不是SLR(1)的證明:1、結構該文法的SLR(1)語法剖析表①結構增廣文法S’->SS->AaS->bAcS->dcS->bdaA->d②結構LR(0)項集族I0I1I2I5I8S’->.SS’->S.S->S->Aa.S->dc.S->.AaI3I4I6I9S->.bAcS->S->S->S->bAc.S->.dcS->A->d.S->.bdaI7I10A->.dA->.dS->S->bda.A->d.③GOTO函數(shù)GOTO(I0,S)=I1GOTO(I0,A)=I2GOTO(I0,b)=I3GOTO(I0,d)=I4GOTO(I1,$)=accGOTO(I2,a)=I5GOTO(I3,A)=I6GOTO(I3,d)=I7GOTO(I4,c)=I8GOTO(I6,c)=I9GOTO(I7,a)=I10④建立SLR語法剖析表以下(FOLLOW(A)={a,c})狀態(tài)ACTIONGOTOabcd$SA0S3S4121acc2S53S764R5S8|R55R16S97S10|R5R58R39R210R4能夠看到在圖中存在二義性的條目,故該文法不是SLR(1)文法2、結構該文法的LALR(1)語法剖析表①結構該增廣文法的LR(1)項集族以下I0I1S’->.S,$S’->S.,$S->.Aa,$S->.bAc,$I2S->.dc,$S->,$S->.bda,$A->.d,a②項會歸并:沒有能夠歸并的項集③GOTO函數(shù)
I3I5I7I9S->,$S->Aa.,$S->.,$S->bAc.,$S->,$I6A->d.,cA->.d,cS->.,$I8I10I4S->dc.,$S->bda.,$S->,$A->d.,$GOTO(I0,S)=I1GOTO(I0,A)=I2GOTO(I0,b)=I3GOTO(I0,d)=I4GOTO(I1,$)=accGOTO(I2,a)=I5GOTO(I3,A)=I6GOTO(I3,d)=I7GOTO(I4,c)=I8GOTO(I6,c)=I9GOTO(I7,a)=I10④結構LALR(1)剖析表以下狀態(tài)ACTIONGOTOabcd$SA0S3S4121acc2S53S764R5S8R55R16S97S10R58R39R210R4可見該剖析表中不存在二義性的條目,故該文法是LALR(1)文法習題說明下邊的文法S->Aa|bAc|Bc|bBaA->dB->d是LR(1)的,但不是LALR(1)的證明:1、結構該文法的LR(1)語法剖析表①結構該文法的增廣文法S’->SS->AaS->bAcS->BcS->bBaA->dB->d②結構該增廣文法的LR(1)項集族以下I0S’->.S,$S->.Aa,$S->.bAc,$S->.Bc,$S->.bBa,$A->.d,aB->.d,c
I1I2I6I10I12S’->S.,$S->,$S->Aa.,$S->Bc.,$S->bBa.,$I3I4I7S->.,$S->,$S->,$I9S->,$I5I8I11A->d.,cA->.d,cB->d.,aA->d.,aS->.,$S->bAc.,$B->.d,aB->d.,c②項會歸并:沒有能夠歸并的項集③GOTO函數(shù)GOTO(I0,S)=I1GOTO(I0,A)=I2GOTO(I0,b)=I3GOTO(I0,B)=I4GOTO(I0,d)=I5GOTO(I1,$)=accGOTO(I2,a)=I6GOTO(I3,A)=I7GOTO(I3,B)=I8GOTO(I3,d)=I9GOTO(I4,c)=I10GOTO(I7,c)=I11GOTO(I8,a)=I12④結構LR(1)剖析表以下狀態(tài)ACTIONGOTOabcd$SAB0S3S51241acc2S63S9784S105R5R66R17S118S129R6R510R311R212R4可見該剖析表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年數(shù)據(jù)隱私保護與賠償協(xié)議
- 2024年度影視制作合同:電視劇《時代先鋒》的制作與發(fā)行
- 2024年攝影作品版權轉讓合同
- 2024年新式知識產(chǎn)權質(zhì)押協(xié)議
- 2024年新建辦公樓工程竣工驗收合同
- 2024年數(shù)據(jù)驅動營銷合作合同
- 2024年房地產(chǎn)開發(fā)商與建筑公司工程承包合同
- 2024年教育機構教室出租合同
- 美術信息技術2.0教研計劃(11篇)
- 2024年北京房產(chǎn)交易合同參考樣式
- 國開(甘肅)2024年春《地域文化(專)》形考任務1-4終考答案
- 檔案整理及數(shù)字化服務方案(技術標 )
- 機器人學課程教學大綱
- 浙江世貿(mào)君瀾酒店集團介紹
- GHTF—質(zhì)量管理體系--過程驗證指南中文版
- 鋁及鋁合金焊接作業(yè)指導書
- 水利工程質(zhì)量與安全監(jiān)督工作實務PPT課件
- 放射性口腔粘膜炎的發(fā)病機制及危險因素
- 加油站特殊作業(yè)安全管理制度(完整版)
- 質(zhì)量風險抵押金管理辦法
- 村紀檢監(jiān)督小組工作職責
評論
0/150
提交評論