編譯原理語義分析和中間代碼生成實(shí)驗(yàn)報(bào)告

編譯原理語義分析和中間代碼生成實(shí)驗(yàn)報(bào)告

ID:35427917

大?。?1.12 KB

頁數(shù):10頁

時(shí)間:2019-03-24

編譯原理語義分析和中間代碼生成實(shí)驗(yàn)報(bào)告_第1頁
編譯原理語義分析和中間代碼生成實(shí)驗(yàn)報(bào)告_第2頁
編譯原理語義分析和中間代碼生成實(shí)驗(yàn)報(bào)告_第3頁
編譯原理語義分析和中間代碼生成實(shí)驗(yàn)報(bào)告_第4頁
編譯原理語義分析和中間代碼生成實(shí)驗(yàn)報(bào)告_第5頁
資源描述:

《編譯原理語義分析和中間代碼生成實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、專題6」吾法制導(dǎo)翻譯程序設(shè)計(jì)原理與實(shí)現(xiàn)技術(shù)13281132李若森計(jì)科1301一、實(shí)驗(yàn)?zāi)康恼Z法制導(dǎo)的基本概念;目標(biāo)代碼結(jié)構(gòu)分析的基本方法;賦值語句語法制導(dǎo)生成四元式的基本原理和方法;該過程包扌舌語法分析和語義分析過程。二、實(shí)驗(yàn)內(nèi)容2.1實(shí)驗(yàn)項(xiàng)目完成以下描述賦值語句和算術(shù)表達(dá)式文法的語法制導(dǎo)生成中間代碼四元式的過程。G[A]:A^V=EE-*E+T

2、E-T

3、TT-*T*F

4、T/F

5、FF-(E)

6、iV->i2.2設(shè)計(jì)說明終結(jié)符號(hào)i為用戶定義的簡單變量,即標(biāo)識(shí)符的定義。2.3設(shè)計(jì)要求(1)設(shè)計(jì)語法制導(dǎo)翻譯過程,給出每一產(chǎn)生式對應(yīng)的語義動(dòng)作

7、;(2)設(shè)計(jì)中I'可代碼四元式的結(jié)構(gòu)(暫不與符號(hào)表有關(guān));(3)輸入串應(yīng)是詞法分析的輸出二元式序列,即某算術(shù)表達(dá)式“專題1”的輸出結(jié)果。輸出為輸入串的四元式序列中間文件;(4)設(shè)計(jì)兩個(gè)測試用例(盡可能完備),并給出程序執(zhí)行結(jié)果。2.4任務(wù)分析重點(diǎn)解決賦值語句文法的改寫和語義動(dòng)作的添加。三、實(shí)現(xiàn)過程3.1擴(kuò)展文法G[s]:A—V=EE-*E+T

8、E-T

9、TT-*T*F

10、T/F

11、FF-(E)

12、iV-*i3.2非終結(jié)符FOLLOW集FOLLOW(S)二{#}FOLLOW(A)二{#}FOLLOW(V)={FOLLOW(E)={FOLLO

13、W(T)={FOLLOW(F)={=}+,),#}+>->*>/>)>#}+,-j/,)>#}3.3LR(0)分析器的構(gòu)造設(shè)DFAM的一個(gè)狀態(tài)為i,該狀態(tài)識(shí)別出的所有活前綴的有效項(xiàng)目集為Cio則DFAM的狀態(tài)集Q={C0>CnC2,…,Cn}=CoC稱為文法的LR(0)有效項(xiàng)目集規(guī)范族。對G有三種操作:■開始操作:S為開始符號(hào),S->6貝ljS->-6GC0■閉包操作:cIosure(CjC:的閉包①Cj的任何項(xiàng)目均屬于closure(Cj)②若Ata-XB且XEVn屬于closure(Cj)則XT?入屬于closure(Cj)重

14、復(fù),直至closure?)不再增大.③Cj二closure(CJ■讀操作:Go?,x)xGVGo(Cj,x)=Cj其中:Cd={ATax-

15、3

16、ATa?xPeCj求文法的LR(0)有效項(xiàng)目集規(guī)范族C的算法:①拓廣文法,保證唯一初態(tài).②生成Co二{ST-6}U{Sf?6的閉包操作}③重復(fù)以下過程,直至C不再增大為止.0讀操作,生成Cj[,Cj2CjnCj「Cj2Cjn閉包操作(若其中某項(xiàng)目集已經(jīng)存在就略去)由上述算法可求得有效項(xiàng)目集規(guī)范族C={C0>CnC2,…,C19}o3.3.1有效項(xiàng)目規(guī)范簇:C0={A,Af?V二E,Vf?i

17、}Cl={S—A?}C2={S~*V?=E}C3={V->i?}C4={S—V二?E,E—?E+T,E—?E?T,E—?T,T—?T*F,T—?T/F,T->?F,F—?(E),F—?i}C5={S->V=E?,E-E?+T,E-E--T}C6={E-*T?,T-*T?*F,T-T-/F}C7={T-F?}C8={F—(?E),E—?E+T,E—?E?T,E—?T,T—?T*F,T—?T/F,T->?F,F—?(E),F—?i}Cg={F-i?}C10={E->E+?T,T-?T*F,T-?T/F,T-?F,F-?(E),F-?i

18、}Cn={E-*E--T,T->?T*F,?T/F,T-?F,F—?(E),F-?i}C12={T-T*?F,F-?(E),F-?i}C13={T->T/?F,F-?(E),F-?i}C14={F-(E?力E-*E?+T,E-*E?-T}C15={E-E+T?,T-T?*F,T-*T?/F}C16={E-E?T?,T->T?*F,T->T?/F}C17={T-T*F?}Cis={T-T/F?}C19={F-*(E)?}3.3.2沖突項(xiàng)目:定義:(1)既含移進(jìn)項(xiàng)目,又含歸約項(xiàng)目(2)含有多個(gè)歸約項(xiàng)目在項(xiàng)目集中存在沖突項(xiàng)目:C5:FO

19、LLOW(S)n{+,-}={#}門{+,—}=0c6:FOLLOW(E)A{S/}={+,-,),#}n{*,/}=0c15:FOLLOW(E)n{s/}=#}n{*,/}=0C16:FOLLOW(E)“{*,/}=#}n{*,/}=0沖突可解決,所以語義分析采用SLR(l)分析法分析。3.4SLR(l)分析法LR(0)有效項(xiàng)目集規(guī)范族C中,若一個(gè)項(xiàng)0集含有m個(gè)移進(jìn)項(xiàng)目,同吋含n個(gè)歸約項(xiàng)目,即Q={U1ta.bxp,U2a.b2pf,,Um->a.bmp,Vra.,V2a.,Vn->a.}若{blfb2>??????"J,FOL

20、LOW(Vi),…,F(xiàn)OLLOW(Vn)兩兩互不相交,滿足此條件的文法為SLR(l)文法,可用SLR(l)分析方法解決。SLR⑴分析法=LR(0)分析法+沖突解決辦法Ci={U->a.bp,V->a./W->a.}(beVT)◎?qū)斎敕?hào)a■a=b

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

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

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