編譯原理實(shí)驗(yàn)指導(dǎo)書-語法分析_第1頁
編譯原理實(shí)驗(yàn)指導(dǎo)書-語法分析_第2頁
編譯原理實(shí)驗(yàn)指導(dǎo)書-語法分析_第3頁
編譯原理實(shí)驗(yàn)指導(dǎo)書-語法分析_第4頁
編譯原理實(shí)驗(yàn)指導(dǎo)書-語法分析_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

編譯原理實(shí)驗(yàn)指導(dǎo)書實(shí)驗(yàn)2語法分析實(shí)驗(yàn)?zāi)康撵柟虒φZ法分析的基本功能和原理的認(rèn)識(shí)。通過對語法分析表的自動(dòng)生成加深語法分析表的認(rèn)識(shí)。理解并處理語法分析中的異常和錯(cuò)誤。實(shí)驗(yàn)內(nèi)容在詞法分析器的基礎(chǔ)上設(shè)計(jì)實(shí)現(xiàn)類高級(jí)語言的語法分析器,基本功能如下:能識(shí)別以下幾類語句:聲明語句(包括變量聲明、數(shù)組聲明、記錄聲明和過程聲明)表達(dá)式及賦值語句(包括數(shù)組元素的引用和賦值)分支語句:if_then_else循環(huán)語句:do_while過程調(diào)用語句(2)如果語法分析器采用的是自頂向下的分析技術(shù),要求編寫程序自動(dòng)計(jì)算FIRST集和FOLLOW集,并自動(dòng)生成預(yù)測分析表。如果采用的是自底向上的分析技術(shù),要求編寫自動(dòng)計(jì)算CLOSURE(I)和GOTO函數(shù)的程序,并自動(dòng)生成LR分析表。(3)具備語法錯(cuò)誤處理能力,能準(zhǔn)確給出錯(cuò)誤所在位置,并采用可行的錯(cuò)誤恢復(fù)策略。輸出的錯(cuò)誤提示信息格式如下:ErroratLine[行號(hào)]:[說明文字](4)系統(tǒng)的輸入形式:要求可以通過文件導(dǎo)入文法和測試用例,可以通過用戶界面顯示并編輯測試用例。測試用例要涵蓋“實(shí)驗(yàn)內(nèi)容”第(1)條中列出的各種類型的語句,并設(shè)置一些語法錯(cuò)誤。(5)系統(tǒng)的輸出分為兩部分:一部分是打印輸出語法分析器的FIRST集、FOLLOW集和LL(1)分析表(或LR分析表)。另一部分是打印輸出語法分析結(jié)果,格式如下:將構(gòu)造好的語法分析樹按照先序遍歷的方式打印每一個(gè)結(jié)點(diǎn)的信息,這些信息包括結(jié)點(diǎn)的名稱以及結(jié)點(diǎn)對應(yīng)的成分在輸入文件中的行號(hào)(行號(hào)被括號(hào)所包圍,并且與結(jié)點(diǎn)名稱之間有一個(gè)空格)。所謂某個(gè)成分在輸入文件中的行號(hào)是指該成分產(chǎn)生的所有詞素中的第一個(gè)在輸入文件中出現(xiàn)的行號(hào)。對于葉結(jié)點(diǎn),如果其token的屬性值不為空,則將其屬性值也打印出來。屬性值與結(jié)點(diǎn)名稱之間以一個(gè)冒號(hào)和空格隔開。每一個(gè)結(jié)點(diǎn)獨(dú)占一行,而每個(gè)子結(jié)點(diǎn)的信息相對于其父結(jié)點(diǎn)的信息來說,在行首都要求縮進(jìn)2個(gè)空格。具體輸出格式參見下例(該例輸入:1 procinc;2 inti;3 i=i+1;

輸出:P(1) D(1) proc(1) id :inc(1);(1)D(2) T(2) X(2) integer(2) id :i(2) ;(2)S(3) id :i(3) =(3) E(3) E(3) id :I(3) +(3) E(3) digit :1(3) ;(3)除此之外,可以實(shí)現(xiàn)一些額外功能,如輸出分析結(jié)果的樹狀圖。實(shí)驗(yàn)要求(1)可以自己定義文法,也可以參考教材中給出的文法(參見本指導(dǎo)書附錄)(2)要求實(shí)驗(yàn)之前完成實(shí)驗(yàn)報(bào)告中的預(yù)習(xí)部分(即需求分析、文法設(shè)計(jì)和系統(tǒng)設(shè)計(jì)三個(gè)板塊)。未按時(shí)完成預(yù)習(xí)報(bào)告者將扣除相應(yīng)分?jǐn)?shù)。(3)要求當(dāng)堂完成實(shí)驗(yàn)內(nèi)容,并進(jìn)行現(xiàn)場驗(yàn)收。未當(dāng)堂完成驗(yàn)收者將扣除相應(yīng)分?jǐn)?shù)。(4)要求實(shí)驗(yàn)結(jié)束后一周內(nèi)提交實(shí)驗(yàn)報(bào)告及源程序。未按時(shí)提交者將影響成績評(píng)定。實(shí)驗(yàn)評(píng)分標(biāo)準(zhǔn)一、課堂表現(xiàn)(10分)1.出勤情況(遲到,早退,缺席)2.是否遵守課堂紀(jì)律二、操作表現(xiàn)(50分)1.當(dāng)堂按時(shí)完成(10分)2.功能齊全,結(jié)果正確無誤(30分)3.界面美觀、人性化,具有良好演示效果(10分)三、實(shí)驗(yàn)報(bào)告(40分)1.需求分析(10分)2.設(shè)計(jì)(20分)3.系統(tǒng)實(shí)現(xiàn)及結(jié)果分析(10分)附錄:參考文法P?D //參見教材p229P?S //參見教材p241 S?SS //參見教材p241/*聲明*/D?DD|procid;DS|Tid; //參見講義第7章 T→XC|recordD //參見教材p227 X→integer|real //參見教材p227C→[num]C|ε //參見教材p227/*賦值語句*/S?id=E;|L=E; //參見教材p234E?E+E|E*E|-E|(E)|id|digit|L //參見教材p234L?id[E]|L[E] //參見教材p234/*控制流語句*/S?ifBthenS1 //參見教材p241|ifBthenS1elseS2 //參見教材p241 |whileBdoS1 //參見教材p241B→BorB //參見教材p243 |BandB //參見教材p243 |notB //參見教材p243 |(B) //參見教材p243 |ErelopE //參見教材p243 |true //參見教材p243 |false //參見教材p243relop→<|<=|==|!=|>|>=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論