




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、云南大學(xué)編譯原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)題目:語義分析學(xué)院:信息學(xué)院專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)號(hào):064姓名:劉繼遠(yuǎn)目錄一、實(shí)驗(yàn)?zāi)康?錯(cuò)誤!未定義書簽。二、實(shí)驗(yàn)內(nèi)容 錯(cuò)誤!未定義書簽。三、源程序分析 錯(cuò)誤!未定義書簽。1、程序采用的BNF錯(cuò)誤 ! 未定義書簽。2、根據(jù)語義要求得到對(duì)應(yīng)的翻譯模式錯(cuò) 誤 ! 未 定 義 書簽。3、實(shí)現(xiàn)原理 錯(cuò)誤!未定義書簽。4、文法的屬性分析 錯(cuò)誤!未定義書簽。5、過程設(shè)計(jì) 錯(cuò)誤!未定義書簽。6、子程序說明 錯(cuò)誤!未定義書簽。四、設(shè)計(jì)的基本思想(包括修改之后的屬性文法、屬性類型分析、翻譯模式) 錯(cuò)誤!未定義書簽。1、增加除法運(yùn)算 錯(cuò)誤!未定義書簽。2、禁止同名重復(fù)聲明 錯(cuò)誤!未
2、定義書簽。五、結(jié)果及分析 錯(cuò)誤!未定義書簽。、實(shí)驗(yàn)?zāi)康倪M(jìn)一步理解遞歸下降分析原理和實(shí)現(xiàn)方法,理解語義分析的基本機(jī)制, 掌握語義子程序的構(gòu)造方法。、實(shí)驗(yàn)內(nèi)容將帶變量聲明的表達(dá)式翻譯為四元式序列,其中包括以下要求:非終結(jié)符號(hào)D實(shí)現(xiàn)定義兩種類型int, real 變量的聲明;非終結(jié)符號(hào)S實(shí)現(xiàn)變量之間的*, +,:=(賦值運(yùn)算)兩個(gè)關(guān)鍵字int 和real變量之間的*, +,:=(賦值)運(yùn)算只能使用聲明過的變量,所以要檢 查使用的變量是否聲明過。對(duì)每個(gè)*, +,:=(賦值)運(yùn)算生成一條四元式如(*, A, B, T1),其中T1是臨時(shí)變量*優(yōu)先級(jí)別高于+, *滿足左結(jié)合規(guī)則三、源程序分析這是一個(gè)簡(jiǎn)單的
3、包含詞法、語法、語義分析的程序:語義分析.h 和語義分析 .cpp 。 實(shí)現(xiàn)的基本原理是自頂向下分析,單遍掃描,以語法分析為核心,調(diào)用詞法分析,并實(shí)現(xiàn)語義分析。1、程序采用的BNF4 DS.A B; DCH* £EB- int L | real L L- id | L , id S- V := E H HR; S | £ JE+T | T T- T*F|F 1( E ) 1 id A id 消除左遞歸之后的等價(jià)文法 start f DS.A B; DCH* £EB- int L | real L Lf id A Z , idA Ar> £S- V
4、:= E HHR; S | £J T RRH +T RFH £T- F PP- * F PP £1( E )F- idA id2、根據(jù)語義要求得到對(duì)應(yīng)的翻譯模式start - DS.A B; DDH* £EB- int L k int | real L k real L 一 id := enter, AK , idA := enter,Ar £S- V := E gen( ":=", ,0, HHR; S | £j T := R :=& +T := newtemp; gen( "+",
5、, , R := ; RH &Rs=T一 f := P :=P- * F := newtemp; gen( "*", , , T) P := ; >=1( E)尸F(xiàn)f id:=position (id)A id :=position(id)3、實(shí)現(xiàn)原理基于翻譯模式的自上而下語義處理(翻譯)1 .對(duì)每個(gè)非終結(jié)符A,構(gòu)造一個(gè)函數(shù),以A的每個(gè)繼承屬性為形參,以 A的 綜合屬性為返回值(若有多個(gè)綜合屬性,可返回記錄類型的值)。如同預(yù)測(cè)分析程序的構(gòu)造,該函數(shù)代碼的流程是根據(jù)當(dāng)前的輸入符號(hào)來決定調(diào)用 哪個(gè)產(chǎn)生式。2 .與每個(gè)產(chǎn)生式相關(guān)的代碼根據(jù)產(chǎn)生式右端的終結(jié)符,非終結(jié)符
6、,和語義規(guī)則 集(語義動(dòng)作),依從左到右的次序完成下列工作:(1) 對(duì)終結(jié)符X ,保存其綜合屬性x的值至專為 而聲明的變量;然后調(diào)用匹配終結(jié)符(match_token )和取下一輸入符號(hào)(next_token ) 的函數(shù);(2) 對(duì)非終結(jié)符 B ,利用相應(yīng)于 B的函數(shù)調(diào)用產(chǎn)生賦值語句c:=B(b1, b2,,bk),其中變量b1, b2,,bk 對(duì)應(yīng)B的各繼承屬性,變量c對(duì)應(yīng)B的綜合屬性(3) 對(duì)語義規(guī)則集,直接copy其中每一語義規(guī)則(動(dòng)作)來產(chǎn)生代碼,只是將對(duì)屬性的訪問替換為對(duì)相應(yīng)變量的訪問。4、文法的屬性分析文法符號(hào)屬性綜合或繼承含義start無D無B無L繼承A繼承S無E綜合指向變量或臨
7、時(shí)變量的指針(用整數(shù) 實(shí)現(xiàn))R繼承同上綜合同上T繼承同上P繼承同上綜合同上F綜合同上V綜合同上5、過程設(shè)計(jì)int getsym(); ame) = 0)printf("錯(cuò)誤4:變量名重復(fù).n");exit(0);每次要把一個(gè)變量加入到tabletx數(shù)組中都要檢驗(yàn)變量名是否跟tabletx數(shù)組中已有的變量名重復(fù),重復(fù)就報(bào)錯(cuò),并跳出程序。這樣就在程序中增加了檢查重復(fù)變量名的功能。五、結(jié)果及分析1、運(yùn)行的文件內(nèi)容為:real a,b;int c,d;c:=c+d*b;d:=b*a.運(yùn)行結(jié)果為:2、運(yùn)行文件的內(nèi)容為:real a,b;int c,d,a;c:=c+d*b;d:=b*a.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育類課題申報(bào)書分工
- 2018贛州課題申報(bào)書
- 合同范本剪輯制作
- 育人平臺(tái)課題申報(bào)書
- 旅游教改課題申報(bào)書范本
- 教改研究課題申報(bào)書
- 下浮類合同范本
- 痛經(jīng)課題申報(bào)書
- 單位全供貨合同范本
- 合同范例軟件全
- 《上市公司治理培訓(xùn)》課件
- 邵陽湘慶有限公司管理費(fèi)用預(yù)算管理優(yōu)化設(shè)計(jì)
- 新人教版小學(xué)五年級(jí)數(shù)學(xué)下冊(cè)《第一單元 觀察物體(三)》2022課標(biāo)大單元整體教學(xué)設(shè)計(jì)-全析
- 《光伏電站運(yùn)行與維護(hù)》課件-項(xiàng)目五 光伏電站常見故障處理
- 《富貴不能淫》知識(shí)點(diǎn)(譯文+主旨+問答題+比較閱讀)
- 《中國(guó)傳統(tǒng)民居建筑》課件
- 《中華人民共和國(guó)文物保護(hù)法》知識(shí)專題培訓(xùn)
- 2024年高考全國(guó)甲卷英語試卷(含答案)
- 2024年貴州公需科目答案
- 新版FMEA控制程序-第五版FMEA
- 四年級(jí)數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案匯編
評(píng)論
0/150
提交評(píng)論