課程設(shè)計(jì)任務(wù)書3_第1頁
課程設(shè)計(jì)任務(wù)書3_第2頁
課程設(shè)計(jì)任務(wù)書3_第3頁
課程設(shè)計(jì)任務(wù)書3_第4頁
課程設(shè)計(jì)任務(wù)書3_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編譯原理課程設(shè)計(jì)指導(dǎo)書一、課程設(shè)計(jì)的目的本次課程設(shè)計(jì)的時(shí)間為2周,目的是通過實(shí)際的題目如:詞法分析、語法分析、代碼優(yōu)化等,使學(xué)生了解和掌握編譯程序的工作原理,同時(shí)培養(yǎng)學(xué)生用相關(guān)的程序設(shè)計(jì)語言進(jìn)行程序設(shè)計(jì),實(shí)現(xiàn)編譯的功能,從而提高學(xué)生的綜合能力。二、設(shè)計(jì)名稱:小型語言編譯器的設(shè)計(jì)/編譯技術(shù)的計(jì)算機(jī)實(shí)現(xiàn)。三、設(shè)計(jì)要求本次課程設(shè)計(jì)有兩種選擇:合作完成與獨(dú)立完成。若選擇合作完成,則需自行組合5位學(xué)生成為一個(gè)小組,小組成員合作完成一個(gè)小型編譯器(見設(shè)計(jì)內(nèi)容題目一)。若選擇獨(dú)立完成,則從設(shè)計(jì)內(nèi)容題目二的13個(gè)題目中任選一個(gè)獨(dú)立實(shí)現(xiàn)。這13個(gè)題目,都有一定的工作量,涵蓋本課程內(nèi)容和實(shí)際應(yīng)用相關(guān)的主要技術(shù)。四

2、、設(shè)計(jì)內(nèi)容題目一:詞法、語法分析器的設(shè)計(jì)。1、 通過設(shè)計(jì)、編制、調(diào)試一個(gè)對于小型語言詞法的詞法分析程序,加深對詞法分析原理的理解,并實(shí)現(xiàn)輸出單詞序列的詞法檢查和分析。(建議1名學(xué)生完成)2、 設(shè)計(jì)、編制、調(diào)試一個(gè)算術(shù)表達(dá)式的語法及語義分析程序,加深對語法及語義分析原理的理解。(建議1名學(xué)生完成)題目二:下列13個(gè)題目任選。選題說明:可以從下列題目中任選一題,每個(gè)題目按難度設(shè)定不同的參考分?jǐn)?shù),上機(jī)成績采用100分制。題目指定的參考分?jǐn)?shù)僅適用于上機(jī)程序部分,實(shí)驗(yàn)報(bào)告成績有自己的標(biāo)準(zhǔn)。1文法的計(jì)算機(jī)表示設(shè)計(jì)要求:1. 可以使用任何語言來完成,例如:Java、C、C+。2. 文法中的空字符串統(tǒng)一使用表

3、示。3. 包括各種可能出現(xiàn)的文法描述方法。a) 使用定義描述文法b) 只用產(chǎn)生式描述文法i. 用大寫字母和小寫字母分別表示非終結(jié)符和終結(jié)符ii. 用帶尖括號的和不帶尖括號分別表示非終結(jié)符和終結(jié)符iii. 產(chǎn)生式可以使用-或:=表示的方法4. 對給定文法判斷是喬姆斯基文法中的哪一種文法5. 文法要求以文本文件方式輸入,不同的文法只要修改文件即可。不允許使用鍵盤輸入文法。2自動機(jī)的形式定義設(shè)計(jì)要求:1. 可以使用任何語言來完成,例如:Java、C、C+。2. 自動機(jī)中的空字符串統(tǒng)一使用表示。3. 分別使用定義和狀態(tài)轉(zhuǎn)換矩陣方法表示自動機(jī),并且兩種表示方法可以相互轉(zhuǎn)化。4. 自動機(jī)的狀態(tài)個(gè)數(shù)和狀態(tài)轉(zhuǎn)

4、換函數(shù)的個(gè)數(shù)可以任意指定并隨意修改,即可以增加或減少狀態(tài)或狀態(tài)轉(zhuǎn)換函數(shù)。5. 判定是確定的自動機(jī)還是不確定的自動機(jī)。6. 采用文本文件方式存儲自動機(jī),若修改自動機(jī)可以僅通過修改該文本文件即可完成。程序可以讀取文本文件保存的自動機(jī)。3自動機(jī)的圖形表示設(shè)計(jì)要求:1. 可以使用任何語言來完成,例如:Java、C+。2. 自動機(jī)中的空字符串統(tǒng)一使用表示。3. 自動機(jī)的狀態(tài)個(gè)數(shù)和狀態(tài)轉(zhuǎn)換函數(shù)的個(gè)數(shù)可以任意指定并隨意修改,即可以增加或減少狀態(tài)或狀態(tài)轉(zhuǎn)換函數(shù)。4. 使用狀態(tài)轉(zhuǎn)換圖表示自動機(jī)。5. 要求設(shè)計(jì)一個(gè)具有簡單的繪圖功能的程序,在可視化界面上繪制一個(gè)狀態(tài)轉(zhuǎn)換圖。6. 采用文本文件方式存儲自動機(jī),若修改

5、自動機(jī)可以僅通過修改該文本文件即可完成。程序可以讀取文本文件保存的自動機(jī)。附加要求(可以不完成):1. 自動機(jī)的定義形式、狀態(tài)轉(zhuǎn)換圖和狀態(tài)轉(zhuǎn)換矩陣三種形式可以相互轉(zhuǎn)化。4自動機(jī)的確定化和最小化設(shè)計(jì)要求:1. 可以使用任何語言來完成,例如:Java、C+。2. 文法中的空字符串統(tǒng)一使用表示。3. 以文件方式讀取自動機(jī)。4. 判斷讀取的自動機(jī)是確定的還是不確定的自動機(jī)。5. 若是不確定的自動機(jī),將自動機(jī)確定化。6. 將確定化后的自動機(jī)最小化。5有窮自動機(jī)與正規(guī)文法的相互轉(zhuǎn)換設(shè)計(jì)要求:1. 可以使用任何語言來完成,例如:Java、C、C+。2. 文法和自動機(jī)中的空字符串統(tǒng)一使用表示。3. 以文件方式

6、讀取自動機(jī)和正規(guī)文法。4. 判斷讀取的文法是否是正規(guī)文法。5. 完成有窮自動機(jī)與正規(guī)文法的相互轉(zhuǎn)換。6LL(1)文法的實(shí)現(xiàn)設(shè)計(jì)要求:1. 可以使用任何語言來完成,例如:Java、C、C+。2. 文法采用常用的方式進(jìn)行描述,例如:SaA。3. 以文件方式讀取文法。4. 分別求出每一個(gè)非終結(jié)符FIRST 集FOLLOW集。5. 畫出預(yù)測分析表。6. 判定讀入的文法是否是LL(1)文法。7. 給定的任意符號串判定是否是文法中的句子,將分析過程用計(jì)算機(jī)打印出來。8. 查出文法中是否含有左遞歸或左公因子。若有則消除左公因子和左遞歸,并給出分析過程。7算符優(yōu)先分析法的實(shí)現(xiàn)*設(shè)計(jì)要求:1. 可以使用任何語言

7、來完成,例如:Java、C、C+。2. 文法采用常用的方式進(jìn)行描述,例如:SaA。3. 以文件方式讀取文法。4. 分別求出每一個(gè)非終結(jié)符的FIRSTVT和LASTVT集。5. 畫出算符優(yōu)先關(guān)系表。6. 判定讀入的文法是否是算符優(yōu)先文法。7. 給定的任意符號串判定是否是文法中的句子,將分析過程用計(jì)算機(jī)打印出來。8LR(0)分析法的實(shí)現(xiàn)設(shè)計(jì)要求:1. 可以使用任何語言來完成,例如:Java、C、C+。2. 文法采用常用的方式進(jìn)行描述,例如:SaA。3. 以文件方式讀取文法。4. 求出項(xiàng)目集規(guī)范族(即所有的狀態(tài))。5. 給出狀態(tài)間的關(guān)系。6. 給出LR(0)分析表。7. 給定的任意符號串判定是否是文

8、法中的句子,將分析過程用計(jì)算機(jī)打印出來。9循環(huán)查找算法的實(shí)現(xiàn)*設(shè)計(jì)要求:1. 可以使用任何語言來完成,例如:Java、C、C+。2. 程序流圖可以采用一種簡單的方法進(jìn)行描述3. 以文件方式讀取程序流圖。4. 求出所有結(jié)點(diǎn)的必經(jīng)結(jié)點(diǎn)集。5. 找出回邊。6. 找出循環(huán)。附加要求:1. 以實(shí)際語言的簡單程序?yàn)槔?,如:C語言等,確定基本塊,求出流圖,進(jìn)行循環(huán)查找的分析。10PL/0語言編譯器的分析和研究*設(shè)計(jì)要求:1. PL/0語言的詞法規(guī)則。2. PL/0語言的語法規(guī)則。3. PL/0語言的代碼生成規(guī)則。4. 分析PL/0編譯器的詞法分析、語法分析、語義分析、出錯(cuò)處理等編譯過程每一步驟的實(shí)現(xiàn)方法。5

9、. 解釋執(zhí)行PL/0語言的程序。6. 對原編譯器進(jìn)行改進(jìn)。11TEST語言編譯器的分析和研究*設(shè)計(jì)要求:1. TEST語言的詞法規(guī)則。2. TEST語言的語法規(guī)則。3. TEST語言的代碼生成規(guī)則。4. 分析TEST語言編譯器的詞法分析、語法分析、語義分析、出錯(cuò)處理等編譯過程每一步驟的實(shí)現(xiàn)方法。5. 解釋執(zhí)行TEST語言的程序。6. 對給出源代碼的編譯器進(jìn)行改進(jìn)。12TINY語言編譯器的分析和研究*設(shè)計(jì)要求:1. TINY語言的詞法規(guī)則。2. TINY語言的語法規(guī)則。3. TINY語言的代碼生成規(guī)則。4. 分析TINY語言編譯器的詞法分析、語法分析、語義分析、出錯(cuò)處理等編譯過程每一步驟的實(shí)現(xiàn)方

10、法。5. 解釋執(zhí)行TINY語言的程序。6. 對給出源代碼的編譯器進(jìn)行改進(jìn)。13Java語言編譯器GJC的分析和研究*設(shè)計(jì)要求:1. Java語言的詞法規(guī)則。2. Java語言的語法規(guī)則。3. Java語言的代碼生成規(guī)則。4. 調(diào)試GJC使之能正確運(yùn)行5. 可以選擇GJC的一部分作為課程設(shè)計(jì),只分析相應(yīng)的部分,并對源代碼進(jìn)行注釋。a) 詞法分析和語法分析b) 語義分析和錯(cuò)誤處理c) 代碼生成6. 對給出源代碼的編譯器進(jìn)行改進(jìn)。五、設(shè)計(jì)細(xì)則序號設(shè)計(jì)內(nèi)容完成時(shí)間備注1課程設(shè)計(jì)動員。布置題目,提出要求,安排時(shí)間。14周周二2書面設(shè)計(jì)和上機(jī)調(diào)試第14周和第15周,在實(shí)驗(yàn)室上機(jī)3檢查運(yùn)行程序,答辯課程設(shè)計(jì)

11、第16周答辯六、設(shè)計(jì)成果要求1 課程設(shè)計(jì)報(bào)告。要求提交規(guī)定格式的課程設(shè)計(jì)報(bào)告書。2 運(yùn)行程序。指導(dǎo)教師在機(jī)房檢查每個(gè)學(xué)生的程序運(yùn)行情況。3 說明設(shè)計(jì)思路和實(shí)現(xiàn)方法。學(xué)生在運(yùn)行程序時(shí),向指導(dǎo)教師介紹說明自己的設(shè)計(jì)思路和實(shí)現(xiàn)方法。4 課程設(shè)計(jì)報(bào)告電子版、源程序、可執(zhí)行檔等打包成一個(gè)壓縮文件,壓縮文件以下列形式命名:科1-26陳軒,并發(fā)送到郵箱donggf。郵件標(biāo)題注明班級、學(xué)號和姓名。七、考核方式1 成績分為100分制。滿分為100分,包括設(shè)計(jì)報(bào)告、上機(jī)程序和學(xué)習(xí)態(tài)度。2 設(shè)計(jì)報(bào)告成績占40%,上機(jī)成績占50%,學(xué)習(xí)態(tài)度占10%。3 檢查上機(jī)程序不及格,總成績不及格。4 設(shè)計(jì)報(bào)告和上機(jī)程序發(fā)現(xiàn)類同

12、,抄襲者和被抄襲者一律不合格。5 設(shè)計(jì)報(bào)告嚴(yán)格按格式要求完成。檢查不合格,重新修改,直到符合要求。八、報(bào)告的撰寫規(guī)范及要求 1版面要求 課程設(shè)計(jì)報(bào)告統(tǒng)一用計(jì)算機(jī)錄入并打印。紙張規(guī)格為A4,版面上、下空2.54cm,左、右空3.17cm、裝訂線0.5cm,位置為左裝訂正文用小四號宋體字。頁數(shù)用小五號宋體,在頁腳處居中標(biāo)明。頁數(shù)從正文開始計(jì)數(shù)。2結(jié)構(gòu)及要求課程設(shè)計(jì)報(bào)告的組成及裝訂順序:封面、目錄、正文。1封面包括題目、姓名、班級、指導(dǎo)教師等2目錄目錄要求層次清晰,且與正文中標(biāo)題一致,包括正文主要層次標(biāo)題。3正文(1)正文的內(nèi)容正文部分包括:前言、報(bào)告主體和結(jié)論。要求文章結(jié)構(gòu)嚴(yán)謹(jǐn),語言流暢,內(nèi)容正確

13、。前言作為開場白,要以簡短的篇幅,說明(1)選題的要求;(2)課程設(shè)計(jì)工作的基本原理。報(bào)告主體是核心部分,占主要篇幅,要求文字簡練,條理分明,重點(diǎn)突出,概念清楚,論證充分,邏輯性強(qiáng)。分別闡述自己在課程設(shè)計(jì)過程中是如何實(shí)現(xiàn)的,相關(guān)的數(shù)據(jù)結(jié)構(gòu)、分析過程、存在問題等要闡述清楚,報(bào)告正文中的不允許使用的源程序代碼,在進(jìn)行詳細(xì)設(shè)計(jì)的算法實(shí)現(xiàn)時(shí),以數(shù)據(jù)流程圖的方式說明程序的算法。報(bào)告中要求有程序運(yùn)行時(shí)的界面,界面直接從計(jì)算機(jī)屏幕上抓圖獲得,程序運(yùn)行示例2個(gè)以上(通過示例可以說明程序的功能),及相應(yīng)的運(yùn)行結(jié)果。結(jié)論是整個(gè)畢業(yè)設(shè)計(jì)報(bào)告的總結(jié),應(yīng)以簡練的文字說明通過課程設(shè)計(jì),對編譯原理課程的理解和新的認(rèn)識,在課

14、程設(shè)計(jì)中實(shí)現(xiàn)的功能和取得的成果,以及存在的問題等。(2) 對正文內(nèi)容及篇幅的要求課程設(shè)計(jì)的漢字的數(shù)量要求在2000字以上。(3)正文的層次劃分和編排方法正文是論文的主要組成部分,題序?qū)哟问俏恼陆Y(jié)構(gòu)的框架。章條序碼統(tǒng)一用阿拉伯?dāng)?shù)字表示,題序?qū)哟慰梢苑譃槿舾杉?,各級號碼之間加一小圓點(diǎn),末尾一級碼的后面不加小圓點(diǎn),層次分級一般不超過4級為宜,各級與上下文間均單倍行距。示例如下:報(bào)告題目:居中放置,并且距下文雙倍行距。 (黑體一號字)正文各層次內(nèi)容:單倍行距。正文中,漢字使用宋體小四號字,英文用Times New Roman 字體小四題序?qū)哟蔚念}序和題名:第一級(章) 1. 2. 3. (黑體小二號字

15、)第二級 (條) 1.1,1.2, 2.1,2.2, 3.1,3.2, (黑體小三號字)第三級 (條) 1.1.1,1.1.2,1.2.1,1.2.2, (黑體四號字)第四級 (條) 1.1.1.1,1.1.1.2,1.2.2.1,1.2.2.2, (黑體小四號字) 各級標(biāo)題的段落均設(shè)置為:段前段后18磅,無縮進(jìn)。題序?qū)哟尉幣鸥袷綖椋赫聴l編號一律左頂格,數(shù)字編號后空一個(gè)字距,再寫章條題名。如在條以下仍需分層,則通常用1.,2.,或1),2),編序,左空2個(gè)字距。4圖表和公式(1)圖表報(bào)告中的選圖及制圖力求精煉。所有圖表均應(yīng)精心設(shè)計(jì)并用繪圖筆繪制,不得徒手勾畫。各類圖表的繪制均應(yīng)符合國家標(biāo)準(zhǔn)。報(bào)

16、告中的表一律不畫左右端線,表的設(shè)計(jì)應(yīng)簡單明了。圖表中所涉及到的單位一律不加括號,用“,”與量值隔開。圖表均應(yīng)有標(biāo)題,并按章編號(如圖1-1、表2-2等)。圖表標(biāo)題均居中書寫,字體為宋體小五號。(2)公式公式統(tǒng)一用英文斜體書寫,公式中有上標(biāo)、下標(biāo)、頂標(biāo)、底標(biāo)等時(shí),必須層次清楚。公式應(yīng)居中放置,公式前的“解”、“假設(shè)”等文字頂格寫,公式末不加標(biāo)點(diǎn),公式的序號寫在公式右側(cè)的行末頂邊線,并加圓括號。序號按章排,如“(1-1)”、“(2-1)”。字體為宋體小五號,公式換行書寫時(shí)與等號對齊。3內(nèi)容要求1. 設(shè)計(jì)題目、班級、學(xué)號、姓名、完成日期;2. 根據(jù)不同的題目給出相應(yīng)的描述。比如給出語法分析方法及中間代碼形式的描述、文法和屬性文法的設(shè)計(jì);或者詞法分析方法及符號表和TOKEN代碼的設(shè)計(jì);3. 簡要的分析與概要設(shè)計(jì);4. 詳

溫馨提示

  • 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

提交評論