




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
國家人才培養(yǎng)模式創(chuàng)新實驗區(qū)、云南省教學(xué)團(tuán)隊、云南大學(xué)軟件學(xué)院教育創(chuàng)新基金(編號:2009EI08)聯(lián)合資助項目實現(xiàn)語義分析及代碼生成器姓 名: 學(xué) 號: 專業(yè):軟件工程任課教師: 柳青 編制時間: 2014年6月13日成績: 云南大學(xué)軟件學(xué)院2012年6月制表1、實驗?zāi)繕?biāo)1.2.強化對系統(tǒng)軟件綜合工程實現(xiàn)能力的訓(xùn)練;1、實驗?zāi)繕?biāo)1.2.強化對系統(tǒng)軟件綜合工程實現(xiàn)能力的訓(xùn)練;加強對實現(xiàn)語義分析及代碼生成器原理、方法和基本實現(xiàn)技術(shù)的理解;2、實現(xiàn)方案設(shè)計算法1.需求分析:PL/0文法的巴斯科范式表示〈程序>::=〈分程序〉.〈分程序>::=[〈常量說明部分>][<變量說明部分>][<過程說明部分>]<語句〉〈常量說明部分>::=const<常量定義>{,<常量定義>};〈常量定義>::=<標(biāo)識符>=<無符號整數(shù)〉〈無符號整數(shù)>::=<數(shù)字>{<數(shù)字〉}〈標(biāo)識符>::=〈字母>{<字母>1〈數(shù)字〉}〈變量說明部分>::=var〈標(biāo)識符〉{,<標(biāo)識符>};〈過程說明部分>::=〈過程首部><分程序>{;<過程說明部分〉}〈過程首部>::=procedure〈標(biāo)識符〉;〈語句>::=〈賦值語句>|<條件語句>|<當(dāng)循環(huán)語句>|<過程調(diào)用語句〉|〈復(fù)合語句>|<讀語句>|<寫語句>|<空〉〈賦值語句>::=〈標(biāo)識符>:=〈表達(dá)式〉〈表達(dá)式〉::=[+|-]<項>{<加法運算符><項〉}〈項>::=〈因子>{<乘法運算符><因子〉}〈因子>::=<標(biāo)識符>|<無符號整數(shù)>|‘(’<表達(dá)式〉‘)’〈加法運算符>::=+|-〈乘法運算符>::=*|/〈條件>::=〈表達(dá)式><關(guān)系運算符><表達(dá)式〉|odd〈表達(dá)式〉〈關(guān)系運算符>::==|<>|<|<=|>|>=〈條件語句>::=if〈條件〉then〈語句〉〈當(dāng)循環(huán)語句>::=while〈條件〉do〈語句〉〈過程調(diào)用語句>::=call<標(biāo)識符〉〈復(fù)合語句>::=begin<語句>{;<語句>}end〈讀語句>::=read‘(’〈標(biāo)識符>{,〈標(biāo)識符〉}‘)’〈寫語句>::=write‘(’〈表達(dá)式>{,〈表達(dá)式〉}‘)’〈字母>::=a|b|c|d x|y|z〈數(shù)字>::=0|1|2|3......8|93、實現(xiàn)步驟語義分析,主要是檢查各種語法成分的語義是否符合語義規(guī)定,例如參與運算的表達(dá)式類型是否一致,賦值語句的賦值左部和右部類型的一致性,數(shù)組元素的維數(shù)與數(shù)組說明維數(shù)的一致性,每一維的下標(biāo)是否越界,在相同作用域中名字是否被重復(fù)說明等。語法制導(dǎo)翻譯:在語義分析過程中,隨著分析的步步進(jìn)展,根據(jù)每個產(chǎn)生式對應(yīng)的語義子程序(或語義規(guī)則描述的語義動作)進(jìn)行翻譯的辦法稱作語法制導(dǎo)翻譯。在分析棧中我們加了一個語義值的棧,用來存儲每一個文法符號的語義值。中間代碼我們采用四元式的表達(dá)方式來表示。四元式:表示形式(op;ARG1,ARG2,RESULT)按運算順序列出,四元式表示比較利于代碼優(yōu)化。簡單的賦值語句的翻譯:語義變量,表示變量即標(biāo)識符字符串E.place語義變量,表示存放E值的變量名在符號表中的入口位置或一整數(shù)碼(臨時變量)Lookup(id,name)語義過程,對查符號表,若找到,則返回其在符號表中的位置,否則返回nil,體現(xiàn)先定義后使用的原則GEN(op;ARG1,ARG2,RESULT)語義過程,生成四元式,填進(jìn)四元式表。Newtemp語義過程,生成一臨時變量Ti。4、結(jié)構(gòu)算法存儲方式:String[]reserveWord用來保存保留字信息相關(guān)方法:publicvoidsyntaxError(Stringmessage){}輸出錯誤消息publicTreeNodestmtSequence()(}開始語法分析publicTreeNodestatement()(}語句節(jié)點分析publicTreeNodefactor()(}表達(dá)式因子節(jié)點分析publicvoidprintTree(TreeNodet)(}輸出語法樹publicchargetChar(char[]c){}獲取一個字符publicchargetNextChar(char[]c){}獲取下一個字符5、測試用例test.txt2ia[l+x]=y+3*43intz;Z、4Z44z=5;5readz;6writez+2;if(x<0)y=z+2m己f[0]+4;輸入是上面的文本內(nèi)容6、運行結(jié)果曰控制臺以亡已終止nMain(14)[Java應(yīng)用程序]D:\ProgramFiIes\Java\jre6\bin\javaw.exe(2011-6-28下午01:43:56)1:intm[0.8];:ra.[l+x]=y+3*4;3:intz;4:z=5;5:readz;■6:writez+2;7:if(x<0>y=z+2;:a=m[0]+4;Syntaxerroratline1:unexpectedtoken->0.8Syntaxerroratline7:unexpectedtoken->ySyntaxerroratline7:unexpectedtoken->=Syntajserroratline7:unexpectedtoken->+Syntaxerroratline8:unexpectedtoken->fileaverfneed;Syntaxerroratline8:unexpectedtoken->fileaverfneed;int:m[0.fnassignto:rn[]TOC\o"1-5"\h\zop: +n-?: 1id:x□p: +id:yop: *nmi: 3num:4int:zassignto:zmim.:5read:zwriteop: +id:znuin.:2玲:<id:xnum:0assignto:znum:2assignto:a.op: +id:m[]num:0nun:4對輸入的內(nèi)容進(jìn)行分析的結(jié)果。7、實驗體會這次的實驗算是較難的一次實驗了,對于四元式的生成我倒是在實驗四中給弄的,但把PL0轉(zhuǎn)換為目標(biāo)代碼還是有一定的難度,但還是弄完了。概括來說,P
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 買地皮合同范本
- 衛(wèi)浴銷售協(xié)議合同范本
- 廚房灶臺租房合同范本
- 專業(yè)管理團(tuán)隊合同范本
- 原礦開采銷售合同范本
- 公司車位轉(zhuǎn)移合同范本
- 單車配件售賣合同范本
- 賣貨合同范本001
- 出行豪車租賃合同范本
- 廠房建筑轉(zhuǎn)讓合同范本
- 精神病醫(yī)院設(shè)置基本標(biāo)準(zhǔn)
- 部編版二年級《道德與法治》下冊全冊教案
- 檔案館建筑設(shè)計規(guī)范
- 《英語閱讀3》課程教案
- 安全標(biāo)準(zhǔn)化法律法規(guī)識別清單
- 高分子材料完整版課件
- DB1301∕T 369-2021 設(shè)施蔬菜有機肥替代化肥技術(shù)規(guī)程
- IPCJEDEC J-STD-020 塑料集成電路(IC)SMD的潮濕回流敏感性分類 該
- 急診與災(zāi)難醫(yī)學(xué)第二版配套課件 05 心悸與心律失常
- 流體力學(xué)第二版蔡增基課件
- 天然氣管道保護(hù)蓋板涵施工方案
評論
0/150
提交評論