版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家人才培養(yǎng)模式創(chuàng)新實(shí)驗(yàn)區(qū)、云南省教學(xué)團(tuán)隊(duì)、云南大學(xué)軟件學(xué)院教育創(chuàng)新基金(編號(hào):2009EI08)聯(lián)合資助項(xiàng)目實(shí)現(xiàn)詞法分析器姓名:學(xué)號(hào):專業(yè):軟件工程任課教師:柳青編制時(shí)間:2014年4月15成績:云南大學(xué)軟件學(xué)院2012年6月制表報(bào)告內(nèi)容:1、實(shí)驗(yàn)?zāi)繕?biāo)了解詞法分析程序的兩種設(shè)計(jì)方法:1.根據(jù)狀態(tài)轉(zhuǎn)換圖直接編程的方式;2.利用DFA編寫通用的詞法分析程序。2、實(shí)現(xiàn)方案背景:PL/0語言是Pascal語言的子集一種功能簡單、結(jié)構(gòu)清晰、可讀性強(qiáng)、而又具備了一般高級(jí)程序設(shè)計(jì)語言的必須部分,對(duì)PL/0語言的編譯程序能充分體現(xiàn)一個(gè)高級(jí)語言編譯程序?qū)崿F(xiàn)的基本方法和技術(shù)編譯的基本過程分為:詞法分析、語法分析、語義分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成。另外還有出錯(cuò)處理和表格處理PL/0的詞法分析程序是一個(gè)獨(dú)立的過程,其功能是為語法語義分析提供單詞,把輸入的字符串形式的源程序分割成一個(gè)個(gè)單詞符號(hào)傳遞給語法語義分析。硬件環(huán)境:MicrosoftWindowsXPprofessional2002Inter(R)Core(TM)2DuoCPUT6670@2.20ghz1.18ghz3.0GB內(nèi)存軟件環(huán)境:MicrosoftvisualC++express使用語言:C語言設(shè)置的三個(gè)全程變量:syn存放單詞類別n存放用戶所定義的值num存放用戶所定義的數(shù)3、實(shí)現(xiàn)步驟1.根據(jù)狀態(tài)轉(zhuǎn)換圖直接編程編寫一個(gè)詞法分析程序,它從左到右逐個(gè)字符的對(duì)源程序進(jìn)行掃描,產(chǎn)生一個(gè)個(gè)的單詞的二元式,形成二元式(記號(hào))流文件輸出。在此,詞法分析程序作為單獨(dú)的一遍,如下圖所示。具體任務(wù)有:(1)組織源程序的輸入(2)拼出單詞并查找其類別編號(hào),形成二元式輸出,得到單詞流文件(3)刪除注釋、空格和無用符號(hào)(4)發(fā)現(xiàn)并定位詞法錯(cuò)誤,需要輸出錯(cuò)誤的位置在源程序中的第幾行。將錯(cuò)誤信息輸出到屏幕上。(5)對(duì)于普通標(biāo)識(shí)符和常量,分別建立標(biāo)識(shí)符表和常量表(使用線性表存儲(chǔ)),當(dāng)遇到一個(gè)標(biāo)識(shí)符或常量時(shí),查找標(biāo)識(shí)符表或常量表,若存在,則返回位置,否則返回0并且填寫符號(hào)表或常量表。標(biāo)識(shí)符表結(jié)構(gòu):變量名,類型(整型、實(shí)型、字符型),分配的數(shù)據(jù)區(qū)地址注:詞法分析階段只填寫變量名,其它部分在語法分析、語義分析、代碼生成等階段逐步填入。常量表結(jié)構(gòu):常量名,常量值2.能對(duì)任何S語言源程序進(jìn)行分析 在運(yùn)行詞法分析程序時(shí),應(yīng)該用問答形式輸入要被分析的S源語言程序的文件名,然后對(duì)該程序完成詞法分析任務(wù)。3.能檢查并處理某些詞法分析錯(cuò)誤詞法分析程序能給出的錯(cuò)誤信息包括:總的出錯(cuò)個(gè)數(shù),每個(gè)錯(cuò)誤所在的行號(hào),錯(cuò)誤的編號(hào)及錯(cuò)誤信息。4. 本實(shí)驗(yàn)要求處理以下兩種錯(cuò)誤(編號(hào)分別為1,2): 1:非法字符:單詞表中不存在的字符處理為非法字符,處理方式是刪除該字符,給出錯(cuò)誤信息,“某某字符非法”。4、結(jié)構(gòu)算法給出各題目的詳細(xì)算法描述,數(shù)據(jù)結(jié)構(gòu)和函數(shù)說明,流程圖。1、詞法分析器的流程圖2、語法分析器主程序圖3、中間代碼生成器流程圖:5、測(cè)試用例輸入程序:floatjinlong=1989;if(jinlong==1989)i++;end#預(yù)計(jì)輸出:(10,float)(10,jinlong)(25,=)(11,1989)(26,;)(2,if)(27,()(10,jinlong)(25,=)(25,=)(11,1989)(28,))(10,i)(13,+)(13,+)(26,;)(6,end)(0,#)6、運(yùn)行結(jié)果7、實(shí)驗(yàn)體會(huì)通過這次實(shí)驗(yàn),我對(duì)編譯原理這門專業(yè)必修課有了
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圓周接力課件教學(xué)課件
- 2024乙丙雙方關(guān)于智能家居系統(tǒng)安裝與維護(hù)的合同
- 2024保險(xiǎn)合同保險(xiǎn)標(biāo)的及屬性規(guī)定
- 2024年司機(jī)配駕汽車租賃合同標(biāo)準(zhǔn)版
- 2024年度工程建設(shè)項(xiàng)目融資擔(dān)保合同
- 2024年居住區(qū)綠化托管協(xié)議
- 2024年廣告制作委托合同
- 2024年展覽廳知識(shí)產(chǎn)權(quán)保護(hù)合同
- 2024國有土地使用權(quán)合同解釋國有土地使用權(quán)收購合同
- 2024年度汽車銷售業(yè)績獎(jiǎng)勵(lì)合同
- 雙塔精餾正常操作雙塔精餾正常操作
- 振蕩指標(biāo)MACD(波段操作精解)
- 2024年四川航空股份有限公司招聘筆試參考題庫含答案解析
- 醫(yī)學(xué)檢驗(yàn)專業(yè)職業(yè)規(guī)劃書
- 喘證診療方案臨床療效評(píng)價(jià)總結(jié)分析
- 慈善協(xié)會(huì)各項(xiàng)管理制度
- 外研版小學(xué)英語六年級(jí)上每課時(shí)教學(xué)反思
- 語法講解一般將來時(shí)課件
- 品牌獨(dú)家代理合作協(xié)議
- 食材、副食品配送方案技術(shù)標(biāo)
- 危大工程清單及安全管理措施(樣表)
評(píng)論
0/150
提交評(píng)論