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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論