編譯技術(shù)課程設(shè)計(jì)大綱及指導(dǎo)書_第1頁
編譯技術(shù)課程設(shè)計(jì)大綱及指導(dǎo)書_第2頁
編譯技術(shù)課程設(shè)計(jì)大綱及指導(dǎo)書_第3頁
編譯技術(shù)課程設(shè)計(jì)大綱及指導(dǎo)書_第4頁
編譯技術(shù)課程設(shè)計(jì)大綱及指導(dǎo)書_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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è)完整的編譯器,加深對編譯器實(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ù)獲取的文法實(shí)現(xiàn)編譯器:1. 難度等級:很簡單   目標(biāo):完成編譯器及解釋執(zhí)行程序,解釋執(zhí)行程序?qū)幾g器產(chǎn)生的PCODE能解釋執(zhí)行,產(chǎn)生運(yùn)行結(jié)果    文法:PL/0文法(與教材上的文法略有差別)   

2、; 優(yōu)化:無  中間代碼:無  目標(biāo)碼:PCODE  最高分:652. 難度等級:較簡單    目標(biāo):完成編譯器及解釋執(zhí)行程序,解釋執(zhí)行程序?qū)幾g器產(chǎn)生的PCODE能解釋執(zhí)行,產(chǎn)生運(yùn)行結(jié)果     文法:C0文法    優(yōu)化:無    中間代碼:無    目標(biāo)碼:PCODE    最高分:

3、703. 難度等級:適中    目標(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. 難度等級:較難   目標(biāo):實(shí)現(xiàn)編譯器,生成X86匯編  &

4、#160; 文法: C0文法    優(yōu)化:無  中間代碼:四元式目標(biāo)碼:X86匯編最高分:895. 難度等級:很難    目標(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)行語法分析,除了難度等級為“很難”的題目允許利用詞法分析和語法分析的自動生成工具外,其他難度等級的所有代碼要求手工編程實(shí)現(xiàn)3. 可以有圖形用戶界面4. 完成以下文檔   1) 需求說明(應(yīng)給出語法或語法圖)   2) 詳細(xì)設(shè)計(jì)(應(yīng)給出程序結(jié)構(gòu),各類、方法(函數(shù))的功能描述和調(diào)用依賴關(guān)系,符號表結(jié)構(gòu),運(yùn)行棧結(jié)構(gòu),出錯(cuò)信息編號及描述等)   3) 操作說明(包括程序安裝、環(huán)境配置;程序啟動后,編譯、運(yùn)行、

6、結(jié)果顯示等操作的說明)   4) 測試報(bào)告(提供至少10個(gè)測試程序的源程序及測試結(jié)果(其中5個(gè)有錯(cuò)誤的文件),如有擴(kuò)充,還需另外提供5個(gè)測試程序)   5) 總結(jié)感想( 完成本實(shí)驗(yàn)項(xiàng)目后的感想及建議)5. 用C/C+或Java語言實(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é)號_姓名_申優(yōu)_MIPS.rar(如36060501_×××_申優(yōu).rar   36060501_×××.rar 36060501_×××_MIPS.rar)考核:1. 檢查文檔內(nèi)

8、容是否齊全、正確2. 將對每份作業(yè)的源程序進(jìn)行編譯,編譯不通過不能得分;不能正常運(yùn)行,不能得分3. 每份作業(yè)將用自己提交的測試程序和老師準(zhǔn)備的5個(gè)測試程序進(jìn)行測試,根據(jù)通過的測試點(diǎn)給分,并能根據(jù)要求修改測試程序進(jìn)行測試4. 回答老師的現(xiàn)場提問5. 申優(yōu)的同學(xué)參加申優(yōu)答辯6. 若發(fā)現(xiàn)程序或文檔雷同,按作弊處理7. 文檔所占比例20,程序及運(yùn)行狀況所占比例80作業(yè)獲取和提交  1. 訪問教學(xué)輔助平臺,以學(xué)號登錄,獲取和提交作業(yè)。  2. 每人最多能兩次獲取題目(不同難度各允許一次),以最后一次為準(zhǔn)(不保留前一次的記錄,不能返回到前一次獲取的結(jié)果),必須按最后一次獲取的題目完成作

9、業(yè)。   3. 請?jiān)谝?guī)定的時(shí)間內(nèi)上網(wǎng)提交作業(yè),逾期將關(guān)閉提交通道。在時(shí)間允許范圍內(nèi)可多次提交作業(yè),只保留最后一次。參考資料1. 編譯原理及編譯程序構(gòu)造第十四章 第十五章 附錄A 附錄B  2. 編譯原理課程設(shè)計(jì),王雷 劉志誠 周晶編著,機(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. 中文版:高級編譯器設(shè)計(jì)與實(shí)現(xiàn),趙克佳,沈志宇譯,機(jī)械工業(yè)出版社其他說明1.  首次登錄請修改密碼,務(wù)必填寫個(gè)人聯(lián)系信息。   2. 直接生成機(jī)器碼的可以獲得加分。 3. 難度等級為“很難”的作業(yè)中,可以選擇生成MIPS匯編,選擇生成MIPS匯編碼的同學(xué)請?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)行語法分析,對不滿足條件的文法要進(jìn)行等價(jià)改寫2. 對于擴(kuò)充的語法成分的語義處理可參考教材第十章和PASCAL-S源代碼文檔模板: 模板一(附錄一) 模板二(附錄二)(附錄一)編譯技術(shù)課程設(shè)計(jì)文 檔學(xué)號:_姓名:_年 月 日一需求說明1文法說明【說明獲取的文法,以及對文法的改寫和擴(kuò)充】2語法圖【畫出每種語法成分的語法圖】3P代碼指令【描述采用的P代碼指令系統(tǒng),對每條指令進(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符號表結(jié)構(gòu)【圖示和文字說明符號表的結(jié)構(gòu)】5運(yùn)行棧結(jié)構(gòu)【圖示和文字說明運(yùn)行棧的結(jié)構(gòu)】6錯(cuò)誤信息描述【說明出錯(cuò)處理方案,以及錯(cuò)誤信息的編號和含義】三操作說明1運(yùn)行環(huán)境【說明搭建運(yùn)行環(huán)境的步驟】2操作步驟【詳細(xì)說明操作步驟或以圖示說明】四測試報(bào)告1測試程序及測試結(jié)果【給出提供的測試程序以及每個(gè)程序的測試結(jié)果】2測試結(jié)果分析【說明測試程序?qū)φZ法成分的覆蓋情況】五總結(jié)感想【說明在完成課程設(shè)計(jì)中的收獲、認(rèn)識和感想】(附錄二)編譯技術(shù)課程設(shè)計(jì)文 檔學(xué)號:_姓名:_年 月 日一需求說明【說明實(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等.壓縮文件請下載最新的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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論