




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第五章 習(xí)題解答5.1 設(shè)一 NDPDA 識別由下述 CFG 定義的語言,試給出這個 NDPDA 的完整形式描述。SSASCSAAaAbCDcDDd5.2 消除下列文法的左遞歸: GA: ABXCZW BAbBc CAxByCp GE: EET+ETT TTF*TF/F F(E)i GX: XYaZbc Y ZdXef ZXeYfa GA: ABa|Aa|cBBb|Ab|d 5.3 設(shè)文法 G: : = |ifthen|ifthenelse i|+ |* |()試構(gòu)造該文法的遞歸下降子程序。 5.4 設(shè)文法 GE: E TE E + E T FT T
2、T F PF F *F精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) P (E) a 構(gòu)造該文法的遞歸下降分析程序; 求該文法的每一個非終結(jié)符的 FIRST 集合和 FOLLOW 集合; 構(gòu)造該文法的 LL(1)分析表,并判斷此文法是否為 LL(1)文法。 5.5 設(shè)文法 GS: S SbAaA B Sb A Bc 將此文法改寫為 LL(1)文法; 求文法的每一個非終結(jié)符的 FIRST 集合和 FOLLOW 集合; 構(gòu)造相應(yīng)的 LL(1)分析表。 5.6 設(shè)文法 GS: S aABbcd A ASd B SAheC C SfCg D aBD 求每一個非終結(jié)符的 FOLLOW 集合; 對每一個非終結(jié)
3、符的產(chǎn)生式選擇,構(gòu)造 FIRST 集合; 該文法是 LL(1)文法。 5.7 設(shè)文法 GE: E AaBb A cAeB B bd 試畫出其自上而下分析程序框圖。第五章習(xí)題參考答案5.1 解:NDPDA M=(Q,H,q0,F,Z0)Q=q=a,b,c,dH=S,A,C,D,a,b,c,dq0=qF=qZ0=S: (q,S)=(q,SASC),(q,)(q,A)=(q,Aa),(q,b)(q,C)=(q,DCD)(q,D)=(q,d)(q,a,a)=(q,)(q,b,b)=(q,)(q,c,c)=(q,)(q,d,d)=(q,)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)5.2 解: 利用消除左
4、遞歸的算法,將非終結(jié)符排序?yàn)?U1=A,U2=B,U3=C, 則 i=1,j=0 時,對文法無影響。 i=2,j=1 時,因?yàn)?Ui=BAb,Uj=ABx|Cz|w 所以將 B 改寫為 BBxb|Czb|wb|Bc 消除產(chǎn)生式 B 的左遞歸: BCzbB|wbB BxbB|cB| i=3,j=1 時,因?yàn)?Ui=CAx,Uj=ABx|Cz|w 所以將 C 改寫為 CBxx|Czx|wx|By|Cp j=2 時,因?yàn)?Ui=CBxx|By,Uj=BCzbB|wbB 所以將產(chǎn)生式 C 改寫為 CCZbBxx|CzbBy|wbBxx|wbBy|Czx|wx|Cp 消除產(chǎn)生式 C 的左遞歸: CwbB
5、xxC|wbByC|wxCCzbBxxC|zbByC|zxC|pC| 所以,文法消除左遞歸后變?yōu)?ABx|Cz|w BCzbB|wbB BxbB|cB| CwbBxxC|wbByC|wxC CzbBxxC|zbByC|zxC|pC| 利用消除左遞歸的算法,將非終結(jié)符排序?yàn)椋篣1=E,U2=T,U3=F 則 i=1,j=0 時,無代入。 消除產(chǎn)生式 E 的左遞歸: ET(T+|T-) i=2,j=1 時,無代入。 消除產(chǎn)生式 T 的左遞歸: TF*|F/F i=3,j=1 時,無代入,也無產(chǎn)生式左遞歸,不改寫產(chǎn)生式。 所以,文法消除左遞歸后變?yōu)?ET(T+|T-) TF*|F/F F(E)|I
6、利用消除左遞歸的算法,將非終結(jié)符排序?yàn)? U1=X,U2=Y,U3=Z 則 i=1,j=0 時,無代入 i=2,j=1 時,因?yàn)?Ui=YZd|Xe|f,Uj=XYa|Zb|c 所以將 Y 改寫為 YZd|Yae|Zbe|ce|f 消除左遞歸,得到 YZdY|ZbeY|ceY|fY YaeY| i=3,j=1 時,因?yàn)?Ui=ZXe|Yf|a,Uj=XYa|Zb|c 所以將 Z 改寫為 ZYae|Zbe|ce|Yf|a j=2 時, Ui=ZYae|Yf, Uj= YZdY|ZbeY|ceY|fY精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)所以將 Z 改寫為 ZZdYae|ZbeYae|ceYa
7、e|fYae|ZdYf|ZbeYf|ceYf|fYf|Zbe|ce|a對 Z 消除左遞歸得到: ZceYaeZ|fYae Z|ceYf Z|fYf Z|ce Z|a ZZdYae Z|beYae Z| dYf Z|beYf Z|be Z| 所以,文法消除左遞歸以后變?yōu)椋篨Ya|Zb|cYZdY|ZbeY|ceY|fYYaeY|ZceYaeZ|fYae Z|ceYf Z|fYf Z|ce Z|a ZZdYae Z|beYae Z| dYf Z|beYf Z|be Z| 利用消除左遞歸的算法,將非終結(jié)符排序?yàn)?U1=A, U2=B則i=1, j=0 時,由于產(chǎn)生式 ABa|Aa|c 存在直接左遞歸
8、,將其修改為 ABaA|cA AaA| i=2,j=1 時,因?yàn)?Ui=BAb,Uj=ABaA|cA,所以將產(chǎn)生式 B 修改為 BBb|BaAb|cAb|d 消除產(chǎn)生式 B 的左遞歸,得 BcAbB|dB BbB|aAbB| 所以文法消除左遞歸后變?yōu)锳BaA|cAAaA| BcAbB|dBBbB|aAbB| 5.3 解:首先改寫文法,使其滿足遞歸下降分析法對文法的要求。對產(chǎn)生式提取最左公共因子得 : = |ifthen else| 對產(chǎn)生式、消除左遞歸得 +| *| 得到等價的文法: :=|ifthen else| i +| 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) *| |() 構(gòu)造該文法
9、的遞歸下降分析程序如下: PROCEDURE ; BEGIN IF SYM IN FIRST() THEN BEGIN ; IF SYM=:= THEN BEGIN READAWORD; END ELSE ERROR END ELSE IF SYM=if THEN BEGIN READAWORD; ; IF SYM=then THEN BEGIN READAWORD; ; END ELSE ERROR END ELSE ERROR END; PROCEDURE ; BEGIN IF SYM=else THEN BEGIN READAWORD; END ELSE IF NOT (SYM IN F
10、OLLOW() THEN ERROR END; PROCEDURE ; BEGIN IF SYM=i/* i 表示標(biāo)識符 */精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) THEN READAWORD ELSE ERROR END; PROCEDURE ; BEGIN ; END; PROCEDURE ; BEGIN IF SYM=+ THEN BEGIN READAWORD; ; END ELSE IF NOT (SYM IN FOLLOW() THEN ERROR END; PROCEDURE ; BEGIN ; END; PROCEDURE ; BEGIN IF SYM=* THEN BE
11、GIN READAWORD; END ELSE IF NOT (SYM IN FOLLOW() THEN ERROR END; PROCEDURE ; BEGIN IF SYM=( THEN BEGIN READAWORD;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) ; IF (SYM=) THEN READAWORD ELSE ERROR END ELSE IF SYM IN FIRST() THEN ELSE ERROR END;5.4 解:(1)步驟和方法與 5.3 中類似,略。(2)根據(jù) FIRST、FOLLOW 集合的求法可以得到:FIRST(E)=(,a, ; FIRST(E)=+
12、,FIRST(T)=(,a, ; FIRST(T)=(,a, ,FIRST(F)=(,a, ;FIRST(F)=*,FIRST(P)=(,a, .FOLLOW(E)=),$; FOLLOW(E)=),$;FOLLOW(T)=+,),$; FOLLOW(T)=+,),$;FOLLOW(F)=(,a,+,),$; FOLLOW(F)=(,a,+,),$;FOLLOW(P)=(,a,+,),$,*; (3)根據(jù)求得的 FIRST、FOLLOW 集合可以得到 SELECT 集合,進(jìn)而構(gòu)造出 LL(1)分析表如下:+*()a$EETEETEETEEE+EEEETTFTTFTTFTTTTTTTTTTTTF
13、FPFFPFFPFFPFFFFF*FFFFFFPP(E)PaP空白處為 ERROR。表中每一元素的表達(dá)式都是唯一的,因此該文法是 LL(1)文法。5.5 解:(1) 改寫文法為 LL(1)文法。因?yàn)?SSbA|aA 有左遞歸,故將其改寫為 SaAbA文法變?yōu)榫x優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) SaAbA BSb ABc這樣的文法滿足 LL(1)文法的條件。(2) 文法每一個非終結(jié)符號的 FIRST 集合為 FIRST(S)=a FIRST(A)=a FIRST(B)=a文法每一個非終結(jié)符號的 FOLLOW 集合為因?yàn)?S 為開始符號,且有產(chǎn)生式 SaAbA 和 BSb所以 FOLLOW
14、(S)=#FIRST(b)=#,b因?yàn)?SaAbA所以 FOLLOW(A)= FOLLOWSFIRST(bA)=#,b因?yàn)?ABc所以 FOLLOW(B)=FIRSTc=c(3) 構(gòu)造相應(yīng)的 LL(1)分析表因?yàn)?FIRST(aAbA)=a所以 MS,a= “ SaAbA”因?yàn)?FIRST(A)=a 所以 MA,a= “ ABc ”因?yàn)?FIRST(B)=a所以 MB,a= “BSb ”文法 GS的分析表如下表所示(空白處是 ERROR)。abc#SSaAbAAABcBBSb文法 GS的分析表5.6 解:首先將文法壓縮,得到 SaABbcd| AASd| BSAh|eC| CSf|Cg| (1
15、) 求每一個非終結(jié)符號的 FOLLOW 集合:因?yàn)?S 為開始符號,且有產(chǎn)生式 AASd,BSAh,CSf所以 FOLLOW(S)=#FIRST(d)FIRST(Ah)FIRST(f)=#,d,a,h,f因?yàn)?SaABbcd,AASd,BSAh所以 FOLLOW(A)=FIRSTBbcdFIRSTSdFIRSTh=b,a,d,h,e因?yàn)?SaABbcd 所以 FOLLOW(B)=FIRSTbcd=b因?yàn)?BeC,CCg所以 FOLLOW(C)=FOLLOW(B)FIRST(g)=b,g(2) 對每一個非終結(jié)符號的產(chǎn)生式選擇,構(gòu)造 FIRST 集合對 S:FIRST(aABbcd)=a FIRST()=精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)對 A:FIRST(ASd)=a,d FIRST()=對 B:FIRST(SAh)=a,d,h FIRST(eC)=e FIRST()=對 C:FIRST(Sf)=a,f FIRST(Cg)=a,f,g FIRST()=(3) 由于存在產(chǎn)生式 CSf|Cg| FIRST(Sf)FIRST(Cg)=a,fa,f,g所以該文法不是 LL(1)文法。 5.7 解:因?yàn)樵撐姆o左遞歸,且對每一個非終結(jié)符號,其右部各候選式的首終結(jié)符號集合兩兩互不相交,所以可以采用自上而下分析方法
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單人船舶出售合同范本
- 萌芽課題申報書
- 提升編導(dǎo)能力課題申報書
- 和學(xué)校超市合作合同范本
- 賣場出租租賃合同范本
- 為課題申報書
- 勞動合同范例 海南
- 產(chǎn)品競拍合同范本
- 勞務(wù)與員工合同范本
- 加氫原料采購合同范本
- DeepSeek的應(yīng)用與部署
- 2019版外研社高中英語選擇性必修二Unit 1 Growing up 單詞表
- 重慶危險性較大的分部分項(xiàng)工程安全管理實(shí)施細(xì)則
- 三菱 PLC FX2N-4AD 4DA 模擬量模塊教材(課堂PPT)
- 有機(jī)金屬化學(xué)1
- JIT標(biāo)準(zhǔn)作業(yè)作業(yè)指導(dǎo)書
- 安徽省2020-2021學(xué)年七年級語文下學(xué)期期末測試卷[含答案]
- 混凝土面板堆石壩接縫止水
- 人教版三年級數(shù)學(xué)下冊各單元教材分析(全冊共九個單元)
- 公司駕駛員承諾書
- 中國石油電子招標(biāo)投標(biāo)交易平臺投標(biāo)保證金操作指南V1.0
評論
0/150
提交評論