終版-編譯實(shí)驗(yàn)指導(dǎo)書.doc_第1頁
終版-編譯實(shí)驗(yàn)指導(dǎo)書.doc_第2頁
終版-編譯實(shí)驗(yàn)指導(dǎo)書.doc_第3頁
終版-編譯實(shí)驗(yàn)指導(dǎo)書.doc_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

編譯原理實(shí)驗(yàn)指導(dǎo)書實(shí)驗(yàn)一 詞法分析一、實(shí)驗(yàn)?zāi)康耐ㄟ^實(shí)現(xiàn)PL/0語言(一種示例小語言)的詞法分析器,理解詞法分析過程,掌握程序各部分之間的接口安排。二、實(shí)驗(yàn)要求1、要求每位同學(xué)單獨(dú)完成詞法分析器,并接受檢查;2、撰寫實(shí)驗(yàn)報(bào)告。(1) 用有限自動機(jī)畫出“三、實(shí)驗(yàn)內(nèi)容”中的詞法規(guī)則;(2) 實(shí)驗(yàn)報(bào)告不要摘抄全部代碼,但需要流程圖的形式描述程序結(jié)構(gòu);(3) 必須書寫設(shè)計(jì)和實(shí)現(xiàn)的過程中出現(xiàn)的一些問題以及解決方法。三、實(shí)驗(yàn)內(nèi)容1、PL/0語言的單詞結(jié)構(gòu)關(guān)鍵字(10個(gè)):begin, end ,if ,then, while, do, const, var,call,procedure標(biāo)識符:字母序列,最大長度10常數(shù):整型常數(shù)算符和界符(17個(gè)):+, -, *,/,odd,=,=,:=,(,) ,, ,.,;2、單詞的種別劃分標(biāo)識符 作為一種常數(shù) 作為一種算符和界符每個(gè)單詞作為一個(gè)單獨(dú)種別3、PL/0的語言的詞法分析器將要完成以下工作:(1) 跳過分隔符(如空格,回車,制表符);(2) 識別諸如begin,end,if,while等保留字;(3) 識別非保留字的一般標(biāo)識符。(4) 識別數(shù)字序列。(5) 識別:=,=之類的特殊符號。4、詞法分析器的實(shí)現(xiàn)方式:把詞法分析器設(shè)計(jì)成一個(gè)獨(dú)立子程序,以便于語法分析器調(diào)用。詞法分析器運(yùn)行一次產(chǎn)生一個(gè)單詞符號。5、詞法分析器的輸出形式 (種別,屬性值)其中:種別在“2、單詞的種別”中進(jìn)行了定義; 屬性值:若單詞種別只代表唯一單詞,屬性值為空; 若單詞種別是SYM_IDENTIFIER,屬性值為該單詞在標(biāo)識符表中的位置; 若單詞種別是SYM_ NUMBER,屬性值為該單詞在常數(shù)表中的位置。6、標(biāo)識符表可以是如下結(jié)構(gòu):nameinfo標(biāo)識符1標(biāo)識符2標(biāo)識符37、常數(shù)表可以是如下結(jié)構(gòu):常數(shù)1常數(shù)2常數(shù)3實(shí)驗(yàn)二 語法分析一、實(shí)驗(yàn)?zāi)康脑趯?shí)驗(yàn)一的基礎(chǔ)上,采用遞歸下降的方法實(shí)現(xiàn)算術(shù)表達(dá)式的語法分析器,以加深對自上而下語法分析過程的理解。二、實(shí)驗(yàn)要求1、要求每位同學(xué)單獨(dú)完成語法法分析器,并接受檢查;2、撰寫實(shí)驗(yàn)報(bào)告。 (1) 實(shí)驗(yàn)報(bào)告書寫一個(gè)有代表性的程序段,并進(jìn)行說明;(2) 必須書寫設(shè)計(jì)和實(shí)現(xiàn)的過程中出現(xiàn)的一些問題以及解決方法。三、實(shí)驗(yàn)內(nèi)容1、對算術(shù)表達(dá)式文法:ETEE+TE| -TE |TFTT*FT| /FT |F(E) | id |num構(gòu)造其遞歸下降分析程序。2、實(shí)驗(yàn)步驟(1)求出每個(gè)非終結(jié)符的FIRST和FOLLOW集(在練習(xí)本上求出即可,不要求程序?qū)崿F(xiàn));(2)構(gòu)造遞歸下降分析程序;(3)驗(yàn)證結(jié)果。實(shí)驗(yàn)三 利用算符優(yōu)先分析方法設(shè)計(jì)一個(gè)計(jì)算器一、實(shí)驗(yàn)?zāi)康脑趯?shí)驗(yàn)一的基礎(chǔ)上,利用算符優(yōu)先分析方法設(shè)計(jì)一個(gè)計(jì)算器,以加深對算符優(yōu)先分析過程和語義分析過程的理解。二、實(shí)驗(yàn)要求1、要求每位同學(xué)獨(dú)立完成;2、撰寫實(shí)驗(yàn)報(bào)告。(1) 寫出計(jì)算器基于的屬性文法;(2) 必須書寫設(shè)計(jì)和實(shí)現(xiàn)的過程中出現(xiàn)的一些問題以及解決方法。三、實(shí)驗(yàn)內(nèi)容1、實(shí)驗(yàn)具體說明目前一般的計(jì)算器進(jìn)行計(jì)算時(shí)不能輸入括號,而且需要事先得到表達(dá)式的各項(xiàng)才能使用它,例如:若直接輸入:3+4*5,一般的計(jì)算器會在輸入乘號時(shí),先得到7,輸入完成后的結(jié)果是35。如果希望能夠更方便的使用計(jì)算器,我們可以進(jìn)行一些改進(jìn)。實(shí)驗(yàn)中要求計(jì)算器:(1) 可以輸入+ - * / ( )(2) 輸入時(shí)不立即計(jì)算,等到下一個(gè)算符出現(xiàn)時(shí)才確定是否進(jìn)行計(jì)算,例如:輸入3+5*4,在輸入*后,發(fā)現(xiàn)+的優(yōu)先級低于*,因此+不計(jì)算,表達(dá)式輸入結(jié)束后先計(jì)算*,后計(jì)算+。(3) 能夠發(fā)現(xiàn)輸入表達(dá)式中的語法錯(cuò)誤。2、實(shí)驗(yàn)步驟實(shí)驗(yàn)分成兩個(gè)階段進(jìn)行:(1

溫馨提示

  • 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

提交評論