




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、編譯技術(shù)課程設(shè)計(jì)大綱及指導(dǎo)書實(shí)驗(yàn)名稱:根據(jù)給定的文法完成一個(gè)小型編譯器。實(shí)驗(yàn)?zāi)康模罕菊n程設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目的目標(biāo)是通過實(shí)際構(gòu)造一個(gè)完整的編譯器,加深對(duì)編譯器實(shí)現(xiàn)原理的理解,了解完整編譯系統(tǒng)的構(gòu)造方法。實(shí)驗(yàn)類型:驗(yàn)證型、提高型實(shí)驗(yàn)學(xué)時(shí):50學(xué)時(shí)實(shí)驗(yàn)描述: 根據(jù)各難度的題目的說明,選擇一個(gè)難度等級(jí),將獲得一份隨機(jī)分配的該難度等級(jí)的文法。根據(jù)獲取的文法實(shí)現(xiàn)編譯器:1. 難度等級(jí):很簡(jiǎn)單 目標(biāo):完成編譯器及解釋執(zhí)行程序,解釋執(zhí)行程序?qū)幾g器產(chǎn)生的PCODE能解釋執(zhí)行,產(chǎn)生運(yùn)行結(jié)果 文法:PL/0文法(與教材上的文法略有差別)
2、; 優(yōu)化:無 中間代碼:無 目標(biāo)碼:PCODE 最高分:652. 難度等級(jí):較簡(jiǎn)單 目標(biāo):完成編譯器及解釋執(zhí)行程序,解釋執(zhí)行程序?qū)幾g器產(chǎn)生的PCODE能解釋執(zhí)行,產(chǎn)生運(yùn)行結(jié)果 文法:C0文法 優(yōu)化:無 中間代碼:無 目標(biāo)碼:PCODE 最高分:
3、703. 難度等級(jí):適中 目標(biāo):完成編譯器及解釋執(zhí)行程序,解釋執(zhí)行程序?qū)幾g器產(chǎn)生的PCODE能解釋執(zhí)行,產(chǎn)生運(yùn)行結(jié)果 文法:擴(kuò)充C0或擴(kuò)充PL/0文法 優(yōu)化:無 中間代碼:無 目標(biāo)碼:PCODE 最高分:804. 難度等級(jí):較難 目標(biāo):實(shí)現(xiàn)編譯器,生成X86匯編 &
4、#160; 文法: C0文法 優(yōu)化:無 中間代碼:四元式目標(biāo)碼:X86匯編最高分:895. 難度等級(jí):很難 目標(biāo):實(shí)現(xiàn)編譯器,生成X86匯編或MIPS匯編 文法: C0文法 優(yōu)化:基本塊內(nèi)部的公共子表達(dá)式刪除 全局寄存器分配(著色算法) 基本的數(shù)據(jù)流分析(變量的活性分析,為全局寄存器分配準(zhǔn)備
5、)中間代碼:四元式目標(biāo)碼:X86匯編或MIPS匯編 最高分:100實(shí)驗(yàn)要求:1. 每人獨(dú)立完成一份作業(yè)2. 采用遞歸子程序法進(jìn)行語(yǔ)法分析,除了難度等級(jí)為“很難”的題目允許利用詞法分析和語(yǔ)法分析的自動(dòng)生成工具外,其他難度等級(jí)的所有代碼要求手工編程實(shí)現(xiàn)3. 可以有圖形用戶界面4. 完成以下文檔 1) 需求說明(應(yīng)給出語(yǔ)法或語(yǔ)法圖) 2) 詳細(xì)設(shè)計(jì)(應(yīng)給出程序結(jié)構(gòu),各類、方法(函數(shù))的功能描述和調(diào)用依賴關(guān)系,符號(hào)表結(jié)構(gòu),運(yùn)行棧結(jié)構(gòu),出錯(cuò)信息編號(hào)及描述等) 3) 操作說明(包括程序安裝、環(huán)境配置;程序啟動(dòng)后,編譯、運(yùn)行、
6、結(jié)果顯示等操作的說明) 4) 測(cè)試報(bào)告(提供至少10個(gè)測(cè)試程序的源程序及測(cè)試結(jié)果(其中5個(gè)有錯(cuò)誤的文件),如有擴(kuò)充,還需另外提供5個(gè)測(cè)試程序) 5) 總結(jié)感想( 完成本實(shí)驗(yàn)項(xiàng)目后的感想及建議)5. 用C/C+或Java語(yǔ)言實(shí)現(xiàn)6. 開發(fā)環(huán)境(Win2K, WinXP) Eclipse 3.2,JDK1.5 Visual Studio 20037. 提交完整
7、的項(xiàng)目/工程文件,在集成開發(fā)環(huán)境下可編譯運(yùn)行,提交能直接運(yùn)行的程序包8. 目錄命名及組織 每份作業(yè)組織為如下三個(gè)文件夾: 源代碼 可執(zhí)行文件 文檔 提交時(shí)打包為一個(gè)文件,按如下規(guī)則命名: 學(xué)號(hào)_姓名_申優(yōu)_MIPS.rar(如36060501_×××_申優(yōu).rar 36060501_×××.rar 36060501_×××_MIPS.rar)考核:1. 檢查文檔內(nèi)
8、容是否齊全、正確2. 將對(duì)每份作業(yè)的源程序進(jìn)行編譯,編譯不通過不能得分;不能正常運(yùn)行,不能得分3. 每份作業(yè)將用自己提交的測(cè)試程序和老師準(zhǔn)備的5個(gè)測(cè)試程序進(jìn)行測(cè)試,根據(jù)通過的測(cè)試點(diǎn)給分,并能根據(jù)要求修改測(cè)試程序進(jìn)行測(cè)試4. 回答老師的現(xiàn)場(chǎng)提問5. 申優(yōu)的同學(xué)參加申優(yōu)答辯6. 若發(fā)現(xiàn)程序或文檔雷同,按作弊處理7. 文檔所占比例20,程序及運(yùn)行狀況所占比例80作業(yè)獲取和提交 1. 訪問教學(xué)輔助平臺(tái),以學(xué)號(hào)登錄,獲取和提交作業(yè)。 2. 每人最多能兩次獲取題目(不同難度各允許一次),以最后一次為準(zhǔn)(不保留前一次的記錄,不能返回到前一次獲取的結(jié)果),必須按最后一次獲取的題目完成作
9、業(yè)。 3. 請(qǐng)?jiān)谝?guī)定的時(shí)間內(nèi)上網(wǎng)提交作業(yè),逾期將關(guān)閉提交通道。在時(shí)間允許范圍內(nèi)可多次提交作業(yè),只保留最后一次。參考資料1. 編譯原理及編譯程序構(gòu)造第十四章 第十五章 附錄A 附錄B 2. 編譯原理課程設(shè)計(jì),王雷 劉志誠(chéng) 周晶編著,機(jī)械工業(yè)出版社 3. Compilers: Principles, Techniques, and Tools. By Alfred V. AHO, Ravi SETHI and Jeffrey D. ULLMAN 中文版:編譯原理,李建中,姜守旭譯,機(jī)械工業(yè)出版社4. Advanced Compiler D
10、esign and Implementation. By Steven S. Muchnick. 中文版:高級(jí)編譯器設(shè)計(jì)與實(shí)現(xiàn),趙克佳,沈志宇譯,機(jī)械工業(yè)出版社其他說明1. 首次登錄請(qǐng)修改密碼,務(wù)必填寫個(gè)人聯(lián)系信息。 2. 直接生成機(jī)器碼的可以獲得加分。 3. 難度等級(jí)為“很難”的作業(yè)中,可以選擇生成MIPS匯編,選擇生成MIPS匯編碼的同學(xué)請(qǐng)?jiān)谛枨蠛吞峤蛔鳂I(yè)的文件名中給予說明和標(biāo)注。 4. 其他優(yōu)化,例如復(fù)制傳播、循環(huán)強(qiáng)度削弱等,可以自行選作,成功完成都有加分。 5. 只有難度為“很難”的作業(yè)才能申優(yōu)。實(shí)驗(yàn)指南:1.
11、由于要采用遞歸子程序法進(jìn)行語(yǔ)法分析,對(duì)不滿足條件的文法要進(jìn)行等價(jià)改寫2. 對(duì)于擴(kuò)充的語(yǔ)法成分的語(yǔ)義處理可參考教材第十章和PASCAL-S源代碼文檔模板: 模板一(附錄一) 模板二(附錄二)(附錄一)編譯技術(shù)課程設(shè)計(jì)文 檔學(xué)號(hào):_姓名:_年 月 日一需求說明1文法說明【說明獲取的文法,以及對(duì)文法的改寫和擴(kuò)充】2語(yǔ)法圖【畫出每種語(yǔ)法成分的語(yǔ)法圖】3P代碼指令【描述采用的P代碼指令系統(tǒng),對(duì)每條指令進(jìn)行說明】二詳細(xì)設(shè)計(jì)1程序結(jié)構(gòu)【從總體上描述程序的結(jié)構(gòu),文字或圖示均可】2類/方法/函數(shù)功能【描述各類/方法或函數(shù)的功能,以及關(guān)鍵算法】3調(diào)用依賴關(guān)系【說明各類之間的關(guān)系,方法/函數(shù)之間的調(diào)用關(guān)系】4符號(hào)表結(jié)構(gòu)【圖示和文字說明符號(hào)表的結(jié)構(gòu)】5運(yùn)行棧結(jié)構(gòu)【圖示和文字說明運(yùn)行棧的結(jié)構(gòu)】6錯(cuò)誤信息描述【說明出錯(cuò)處理方案,以及錯(cuò)誤信息的編號(hào)和含義】三操作說明1運(yùn)行環(huán)境【說明搭建運(yùn)行環(huán)境的步驟】2操作步驟【詳細(xì)說明操作步驟或以圖示說明】四測(cè)試報(bào)告1測(cè)試程序及測(cè)試結(jié)果【給出提供的測(cè)試程序以及每個(gè)程序的測(cè)試結(jié)果】2測(cè)試結(jié)果分析【說明測(cè)試程序?qū)φZ(yǔ)法成分的覆蓋情況】五總結(jié)感想【說明在完成課程設(shè)計(jì)中的收獲、認(rèn)識(shí)和感想】(附錄二)編譯技術(shù)課程設(shè)計(jì)文 檔學(xué)號(hào):_姓名:_年 月 日一需求說明【說明實(shí)驗(yàn)的要求及實(shí)現(xiàn)方案等】二詳細(xì)設(shè)計(jì)1程序結(jié)構(gòu)【從總體上描述程序的結(jié)構(gòu),文字或圖示均可】2類/方法/函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 武漢出版社三年級(jí)生命安全防震減災(zāi)計(jì)劃
- 測(cè)量員崗位職責(zé)與精度控制
- 初中化學(xué)教學(xué)資源數(shù)字化計(jì)劃
- 藥劑科醫(yī)療質(zhì)量與安全管理小組職責(zé)
- 幼兒園師德師風(fēng)規(guī)范心得體會(huì)
- 橋梁檢測(cè)高處作業(yè)安全技術(shù)措施
- 幼兒園廚師備餐清潔消毒流程他
- 少年宮足球興趣小組協(xié)作拓展計(jì)劃
- 統(tǒng)編版五年級(jí)語(yǔ)文語(yǔ)言表達(dá)練習(xí)計(jì)劃
- 新人教版六年級(jí)英語(yǔ)下冊(cè)學(xué)生評(píng)價(jià)計(jì)劃
- 哇哈哈品牌管理制度
- 2025年第十屆“學(xué)憲法、講憲法”網(wǎng)絡(luò)知識(shí)競(jìng)賽題庫(kù)(含答案)
- 中學(xué)生日常行為習(xí)慣養(yǎng)成課題計(jì)劃2
- 懸臂澆筑連續(xù)梁梁體鋼筋施工技術(shù)交底
- 滬教牛津版小學(xué)一至六年級(jí)英語(yǔ)單詞匯總(最新)
- 計(jì)價(jià)格(2002)10號(hào)文
- 從銷售員到銷售總監(jiān)的六門必修課
- 《云南省建筑工程資料管理規(guī)程應(yīng)用指南)(上下冊(cè))
- 工程更改控制程序DFCPQEOMS-06
- 送電線路工程跨越河流架線施工專項(xiàng)方案
- 臺(tái)州市幼兒園教師考核表.
評(píng)論
0/150
提交評(píng)論