下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《編譯原理》課程實(shí)驗(yàn)教學(xué)大綱一、實(shí)驗(yàn)類別:專業(yè)實(shí)驗(yàn)課程學(xué)分:3二、實(shí)驗(yàn)總學(xué)時(shí):8三、應(yīng)開實(shí)驗(yàn)個(gè)數(shù):3必開實(shí)驗(yàn)個(gè)數(shù):3選開實(shí)驗(yàn)個(gè)數(shù):0四、適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)五、實(shí)驗(yàn)成績(jī)?cè)u(píng)定方法:上機(jī)實(shí)驗(yàn)要求對(duì)PL語(yǔ)言及其編譯器進(jìn)行實(shí)現(xiàn)及擴(kuò)充、修改。每個(gè)擴(kuò)充或修改方式可得到不同的分?jǐn)?shù),滿分為100分。實(shí)驗(yàn)總成績(jī)主要從兩大方面評(píng)定:考勤與實(shí)際操作技能考核占50%、實(shí)驗(yàn)報(bào)告占50%。完成上機(jī)作業(yè)后,必須提交下列文檔:1.修改后的PL語(yǔ)言文本。包含詞法分析(正規(guī)式),語(yǔ)法分析(BNF)。2.有關(guān)修改后的PL編譯/解釋器的說明。詳細(xì)說明編譯器是如何編譯新的PL語(yǔ)言程序的。指出程序中最精彩的部分,以及為什么這樣做,如何控制和恢復(fù)語(yǔ)義錯(cuò)誤的。3.給出改動(dòng)后的編譯器源程序清單,并標(biāo)記出所修改的部分。比較你的編譯器和原來的編譯器之間的差別。4.說明你的編譯器中可能存在的錯(cuò)誤。5.總結(jié)經(jīng)驗(yàn)與教訓(xùn),如果重做一遍,會(huì)有哪些新的改進(jìn)?對(duì)現(xiàn)存的PL編譯程序可做如下修改或擴(kuò)充,其中(1)、(2)、(11)和(12)必須完成,剩余的均可任意選擇,但總分必須超過40分。1.注釋(5分)2.布爾類型的數(shù)據(jù)(10分)3.布爾表達(dá)式的短路計(jì)算(5分)4.?dāng)?shù)組(10分)為了便于解釋執(zhí)行,可能要增加新的PL機(jī)器操作指令。5.參數(shù)(10分)語(yǔ)法同Pascal(不用var聲明)。6.函數(shù)(10分)語(yǔ)法同Pascal。7.else子句和repeat語(yǔ)句(5分)8.for語(yǔ)句,語(yǔ)法參照Pascal或C語(yǔ)言(5分)9.exit語(yǔ)句和break語(yǔ)句(5分)10.記錄(結(jié)構(gòu)),語(yǔ)法同Pascal語(yǔ)言(10分)。11.更有力的語(yǔ)法錯(cuò)誤恢復(fù)機(jī)制(20分)12.分離解釋和編譯器(5分)六、實(shí)驗(yàn)成績(jī)占課程總成績(jī)比例:10%七、實(shí)驗(yàn)教材或自編指導(dǎo)書:《編譯原理課程實(shí)驗(yàn)指導(dǎo)書》(自編)八、實(shí)驗(yàn)項(xiàng)目:實(shí)驗(yàn)編號(hào)實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)類型實(shí)驗(yàn)學(xué)時(shí)要求實(shí)驗(yàn)一編譯器的詞法分析綜合性2必開實(shí)驗(yàn)二編譯器的語(yǔ)法分析綜合性4必開實(shí)驗(yàn)三編譯器的代碼生成綜合性2必開實(shí)驗(yàn)一編譯器的詞法分析學(xué)時(shí):2(一)實(shí)驗(yàn)類型:綜合性(二)實(shí)驗(yàn)?zāi)康模和ㄟ^閱讀PL的語(yǔ)法圖,設(shè)計(jì)、編制并調(diào)試一個(gè)PL詞法分析程序,加深學(xué)生對(duì)詞法分析原理的理解。(三)實(shí)驗(yàn)內(nèi)容:PL的詞法分析器將要完成以下工作:1.跳過分隔符(如空格,回車,制表符)。2.識(shí)別諸如begin,end,if,while等保留字。3.識(shí)別非保留字的一般標(biāo)識(shí)符,此標(biāo)識(shí)符值(字符序列)賦給全局量id,而全局量sym賦值為SYM_IDENTIFIER。5.識(shí)別數(shù)字序列,當(dāng)前值賦給全局量NUM,sym則置為SYM_NUMBER。6.識(shí)別:=,<=,>=之類的特殊符號(hào),全局量sym則分別被賦值為SYM_BECOMES,SYM_LEQ,SYM_GEQ等。相關(guān)過程(函數(shù))有g(shù)etsym(),getch(),其中g(shù)etch()為獲取單個(gè)字符的過程,除此之外,它還完成:1.識(shí)別且跳過行結(jié)束符。2.將輸入源文件復(fù)寫到輸出文件。3.產(chǎn)生一份程序列表,輸出相應(yīng)行號(hào)或指令計(jì)數(shù)器的值。(四)要求:必開(五)每組人數(shù):1(六)主要儀器設(shè)備及配套數(shù):計(jì)算機(jī)100臺(tái)。(七)所屬實(shí)驗(yàn)室:計(jì)算機(jī)技術(shù)實(shí)驗(yàn)室實(shí)驗(yàn)二編譯器的語(yǔ)法分析學(xué)時(shí):4(一)實(shí)驗(yàn)類型:綜合性(二)實(shí)驗(yàn)?zāi)康模赫莆誔L語(yǔ)言編譯器的語(yǔ)法分析程序設(shè)計(jì)與LL(1)文法應(yīng)用的實(shí)現(xiàn)方法。(三)實(shí)驗(yàn)內(nèi)容:采用遞歸下降的方法來設(shè)計(jì)PL/0編譯器,證明PL/0語(yǔ)言屬于LL(1)文法。然后結(jié)合語(yǔ)法圖編寫(遞歸下降)語(yǔ)法分析程序的一般方法,具體方面有:1.用合適的替換將語(yǔ)法約化成盡可能少的單個(gè)圖;2.將每一個(gè)圖按下面的規(guī)則(3)-(7)翻譯成一個(gè)過程說明;3.順序圖對(duì)應(yīng)復(fù)合語(yǔ)句:SnS1S2SnS1S2對(duì)應(yīng):beginT(S1);T(S2);...;T(Sn)end4.選擇:S1S1S2S2SS3對(duì)應(yīng):case語(yǔ)句或者條件語(yǔ)句: casechofifchinL1thenT(S1)else L1:T(S1);ifchinL2thenT(S2)else L2:T(S2);或......ifchinLnthenT(Sn)elseLn:T(Sn);error 其中Li∈FIRST(Si),ch為當(dāng)前輸入符號(hào)。(下同)5.循環(huán):SS 對(duì)應(yīng):whilechinLdoT(S)6.表示另一個(gè)圖A的圖:AA對(duì)應(yīng):過程調(diào)用A。7.表示終結(jié)符的單元圖:xx對(duì)應(yīng):ifch==xthenread(ch)elseerror相關(guān)過程有:block(),constdeclaration(),vardeclaration(),statement(),condition(),expression(),term(),factor()等。并畫出它們之間依賴關(guān)系圖,并在此基礎(chǔ)上實(shí)現(xiàn)程序的編制。并適當(dāng)進(jìn)行語(yǔ)義分析的相關(guān)檢查:1.是否存在標(biāo)識(shí)符先引用未聲明的情況。2.是否存在己聲明的標(biāo)識(shí)符的錯(cuò)誤引用。3.是否存在一般標(biāo)識(shí)符的多重聲明。(四)要求:必開(五)每組人數(shù):1(六)主要儀器設(shè)備及配套數(shù):計(jì)算機(jī)100臺(tái)。(七)所屬實(shí)驗(yàn)室:計(jì)算機(jī)技術(shù)實(shí)驗(yàn)室實(shí)驗(yàn)三編譯器的代碼生成學(xué)時(shí):2(一)實(shí)驗(yàn)類型:綜合性(二)實(shí)驗(yàn)?zāi)康模赫莆誔L語(yǔ)言編譯器的中間代碼生成的程序分析與實(shí)現(xiàn)方法,并能對(duì)錯(cuò)誤進(jìn)行分析與處理。(三)實(shí)驗(yàn)內(nèi)容:為了使我們的編譯程序保持適當(dāng)簡(jiǎn)單的水平,不致陷入與本課程無關(guān)的實(shí)際機(jī)器的特有性質(zhì)的考慮中去,我們假想有臺(tái)適合PL程序運(yùn)行的計(jì)算機(jī),我們稱之為PL處理機(jī)。PL處理機(jī)順序解釋生成的目標(biāo)代碼。PL處理機(jī)的指令集根據(jù)PL語(yǔ)言的要求而設(shè)計(jì),它包括以下的指令: 1.LIT/*將常數(shù)置于棧頂*/ 2.LOD/*將變量值置于棧頂*/ 3.STO/*將棧頂?shù)闹蒂x與某變量*/ 4.CAL/*用于過程調(diào)用的指令*/ 5.INT/*在數(shù)據(jù)棧中分配存貯空間*/ 6.JMP,JPC/*用于if,while語(yǔ)句的條件或無條件控制轉(zhuǎn)移指令*/ 7.OPR/*一組算術(shù)或邏輯運(yùn)算指令*/上述指令的格式由三部分組成:FLA其中,f,l,a的含義見下表:FLaINT———常量LIT———常量LOD層次差數(shù)據(jù)地址STO層次差數(shù)據(jù)地址CAL層次差程序地址JMP———程序地址JPC———程序地址OPR———運(yùn)算類別表1PL處理機(jī)指令表1PL處理機(jī)指令PL的編譯程序?yàn)槊恳粭lPL源程序的可執(zhí)行語(yǔ)句生成后綴式目標(biāo)代碼。另一方面,發(fā)現(xiàn)錯(cuò)誤,并給出合適的診斷信息且繼續(xù)編譯下去從而
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年天津醫(yī)學(xué)高等專科學(xué)校單招綜合素質(zhì)考試參考題庫(kù)含詳細(xì)答案解析
- 2026年長(zhǎng)春早期教育職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年天津交通職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026年湖北國(guó)土資源職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年河源職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試模擬試題及答案詳細(xì)解析
- 2026年新疆農(nóng)業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年深圳信息職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)及答案詳細(xì)解析
- 2026年安徽中醫(yī)藥高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測(cè)試備考試題及答案詳細(xì)解析
- 2026年上海政法學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)含詳細(xì)答案解析
- 2026年安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 北京市順義區(qū)2025-2026學(xué)年八年級(jí)上學(xué)期期末考試英語(yǔ)試題(原卷版+解析版)
- 中學(xué)生冬季防溺水主題安全教育宣傳活動(dòng)
- 2026年藥廠安全生產(chǎn)知識(shí)培訓(xùn)試題(達(dá)標(biāo)題)
- 初中九年級(jí)上一元二次方程計(jì)算練習(xí)題及答案詳解B2
- 中國(guó)涉外律師人才研究報(bào)告2025
- 冷庫(kù)防護(hù)制度規(guī)范
- 2024法院書記員招聘筆試必考題含答案
- 地溝清理合同協(xié)議
- 2025年湖南省郴州市中考模擬英語(yǔ)試題(含答案含聽力原文無音頻)
- 無損檢測(cè)考試題及答案
- 河南省2025屆高三下學(xué)期2月質(zhì)量檢測(cè)語(yǔ)文試卷(含答案)
評(píng)論
0/150
提交評(píng)論