編譯原理第五章

編譯原理第五章

ID:47970065

大?。?2.52 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2020-01-18

編譯原理第五章_第1頁(yè)
編譯原理第五章_第2頁(yè)
編譯原理第五章_第3頁(yè)
編譯原理第五章_第4頁(yè)
資源描述:

《編譯原理第五章》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、第五章2.對(duì)下面的文法G:EàTE/E/à+E

2、εTàFT/T/àT

3、εFàPF/F/à*F/

4、εPà(E)

5、a

6、b

7、^(1)計(jì)算這個(gè)文法的每個(gè)非終結(jié)符的FIRST集和FOLLOW集。(2)證明這個(gè)方法是LL(1)的。(3)構(gòu)造它的預(yù)測(cè)分析表。(4)構(gòu)造它的遞歸下降分析程序。解:(1)計(jì)算這個(gè)文法的每個(gè)非終結(jié)符的FIRST集和FOLLOW集。FIRST集合有:FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P)={(,a,b,^};FIRST(E/)={+,ε}FIRST(T)=FIRST(F)=FIRST(P)={(,a,b,^};FIRST(T/)=FIRST(T)

8、∪{ε}={(,a,b,^,ε};FIRST(F)=FIRST(P)={(,a,b,^};FIRST(F/)=FIRST(P)={*,ε};FIRST(P)={(,a,b,^};FOLLOW集合有:FOLLOW(E)={),#};FOLLOW(E/)=FOLLOW(E)={),#};FOLLOW(T)=FIRST(E/)∪FOLLOW(E)={+,),#};//不包含εFOLLOW(T/)=FOLLOW(T)=FIRST(E/)∪FOLLOW(E)={+,),#};FOLLOW(F)=FIRST(T/)∪FOLLOW(T)={(,a,b,^,+,),#};//不包含εFOLLOW(F/)

9、=FOLLOW(F)=FIRST(T/)∪FOLLOW(T)={(,a,b,^,+,),#};FOLLOW(P)=FIRST(F/)∪FOLLOW(F)={*,(,a,b,^,+,),#};//不包含ε(2)證明這個(gè)方法是LL(1)的。各產(chǎn)生式的SELECT集合有:SELECT(EàTE/)=FIRST(T)={(,a,b,^};SELECT(E/à+E)={+};SELECT(E/àε)=FOLLOW(E/)={),#}SELECT(TàFT/)=FIRST(F)={(,a,b,^};SELECT(T/àT)=FIRST(T)={(,a,b,^};SELECT(T/àε)=FOLLOW

10、(T/)={+,),#};SELECT(FàPF/)=FIRST(P)={(,a,b,^};SELECT(F/à*F/)={*};SELECT(F/àε)=FOLLOW(F/)={(,a,b,^,+,),#};SELECT(Pà(E))={(}SELECT(Pàa)={a}SELECT(Pàb)=SELECT(Pà^)={^}可見(jiàn),相同左部產(chǎn)生式的SELECT集的交集均為空,所以文法G[E]是LL(1)文法。(3)構(gòu)造它的預(yù)測(cè)分析表。文法G[E]的預(yù)測(cè)分析表如下:+*()ab^#EàTE/àTE/àTE/àTE/E/à+EàεàεTàFT/àFT/àFT/àFT/T/àεàTàεà

11、TàTàTàεFàPF/àPF/àPF/àPF/F/àεà*F/àεàεàεàεàεàεPà(E)àaàbà^(4)構(gòu)造它的遞歸下降分析程序。對(duì)每個(gè)非終結(jié)符寫(xiě)出不帶回溯的遞歸子程序如下:charCH;//存放當(dāng)前的輸入符號(hào)voidP_E()//非終結(jié)符E的子程序{if(IsIn(CH,FIRST_TEP))//FIRST_TEP為T(mén)àTE/的右部的FIRST集合,產(chǎn)生式EàTE/{P_T();P_EP();}elseERR;}voidP_EP()//非終結(jié)符E/的子程序{if(CH==’+’)//產(chǎn)生式E/à+E{READ(CH);P_E();}else//產(chǎn)生式E/àε{if(IsIn

12、(CH,FOLLOW_EP))//FOLLOW_EP為E/的FOLLOW集合return;elseERR;}}voidP_T()//非終結(jié)符T的子程序{if(IsIn(CH,FIRST_FTP))//FIRST_TEP為T(mén)àFT/的右部的FIRST集合,產(chǎn)生式TàFT/{P_F();P_TP();}elseERR;}voidP_TP()//非終結(jié)符T/的子程序{if(IsIn(CH,FIRST_T))//FIRST_T為產(chǎn)生式T/àT的右部的FIRST集合,產(chǎn)生式T/àT{P_T();}else//產(chǎn)生式T/àε{if(IsIn(CH,FOLLOW_TP))//FOLLOW_TP為T(mén)/的

13、FOLLOW集合return;elseERR;}}voidP_F()//非終結(jié)符F的子程序{if(IsIn(CH,FIRST_PFP))//FIRST_PFP為FàPF/的右部的FIRST集合,產(chǎn)生式FàPF/{P_P();P_FP();}elseERR;}voidP_FP()//非終結(jié)符F/的子程序{if(CH==’*’)//產(chǎn)生式F/à*F/{READ(CH);P_FP();}else//產(chǎn)生式F/àε{if(IsIn(CH,F

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。