SNL編譯器設(shè)計(jì)實(shí)驗(yàn)報(bào)告.doc

SNL編譯器設(shè)計(jì)實(shí)驗(yàn)報(bào)告.doc

ID:56234016

大?。?.07 MB

頁(yè)數(shù):30頁(yè)

時(shí)間:2020-03-22

SNL編譯器設(shè)計(jì)實(shí)驗(yàn)報(bào)告.doc_第1頁(yè)
SNL編譯器設(shè)計(jì)實(shí)驗(yàn)報(bào)告.doc_第2頁(yè)
SNL編譯器設(shè)計(jì)實(shí)驗(yàn)報(bào)告.doc_第3頁(yè)
SNL編譯器設(shè)計(jì)實(shí)驗(yàn)報(bào)告.doc_第4頁(yè)
SNL編譯器設(shè)計(jì)實(shí)驗(yàn)報(bào)告.doc_第5頁(yè)
資源描述:

《SNL編譯器設(shè)計(jì)實(shí)驗(yàn)報(bào)告.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、編譯原理課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-30-目錄第一部分實(shí)驗(yàn)成果統(tǒng)計(jì)表…………………………………………………………1第二部分實(shí)驗(yàn)簡(jiǎn)介…………………………………………………………………2第三部分詞法分析…………………………………………………………………3第四部分語(yǔ)法分析…………………………………………………………………64.1LL(1)法語(yǔ)法分析…………………………………………………………74.2遞歸下降法語(yǔ)法分析……………………………………………………10第五部分語(yǔ)義分析…………………………………………………………………19第六部分程序測(cè)試…………………………………………………………………22第七部

2、分實(shí)驗(yàn)總結(jié)與體會(huì)…………………………………………………………28-30-第一部分實(shí)驗(yàn)成果統(tǒng)計(jì)表姓名性別班級(jí)學(xué)號(hào)所占比例個(gè)人成績(jī)?nèi)蝿?wù)分工:(請(qǐng)用小四號(hào)宋體填寫(xiě))詞法分析部分程序的調(diào)試與實(shí)現(xiàn);LL(1)語(yǔ)法分析部分程序的調(diào)試與實(shí)現(xiàn);遞歸下降語(yǔ)法分析部分程序的調(diào)試與實(shí)現(xiàn);語(yǔ)義分析部分程序的調(diào)試與實(shí)現(xiàn);成績(jī)?cè)u(píng)定:詞法分析遞歸下降LL(1)語(yǔ)義分析團(tuán)隊(duì)成績(jī)教師簽章備注填寫(xiě)說(shuō)明:1、請(qǐng)將首頁(yè)紅色部分信息填全,其中:班級(jí)為2位數(shù)字,保留首位的0;學(xué)號(hào)為8位數(shù)字,計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院以53開(kāi)頭;所占比例為百分?jǐn)?shù),精確到個(gè)位數(shù),且所有人的所占比例之和為100%;不足四人的分組請(qǐng)保留后面的多余空行,請(qǐng)勿修改

3、該表的結(jié)構(gòu)。2、請(qǐng)根據(jù)實(shí)際情況填寫(xiě)任務(wù)分工部分,主要任務(wù)包括:編譯系統(tǒng)的總體分析與設(shè)計(jì),四個(gè)具體功能的設(shè)計(jì)與實(shí)現(xiàn),對(duì)應(yīng)的測(cè)試與驗(yàn)證過(guò)程(報(bào)告正文需要列出若干組具體測(cè)試樣例與對(duì)應(yīng)結(jié)果),系統(tǒng)界面的設(shè)計(jì)與美工,以及輔助工具、視圖和文件等。3、成績(jī)?cè)u(píng)定部分由指導(dǎo)教師填寫(xiě),請(qǐng)勿填寫(xiě)和修改。-30-第二部分實(shí)驗(yàn)簡(jiǎn)介本實(shí)驗(yàn)中實(shí)現(xiàn)了SNL編譯系統(tǒng)中的詞法分析、語(yǔ)法分析和語(yǔ)義分析。其中語(yǔ)法分析包括遞歸下降分析方法和LL(1)分析方法。詞法分析,以源程序?yàn)檩斎?,生成單詞的內(nèi)部表示TOKEN序列。語(yǔ)法分析,以TOKEN序列為輸入進(jìn)行語(yǔ)法分析,并生成整個(gè)源程序的語(yǔ)法分析樹(shù)。在SNL編譯程序中,采用了兩種語(yǔ)法分

4、析方法實(shí)現(xiàn):LL(1)和遞歸下降法。兩種語(yǔ)法分析的結(jié)果是一樣的。語(yǔ)義分析,以語(yǔ)法樹(shù)為輸入生成標(biāo)識(shí)符的屬性符號(hào)表以及相關(guān)的各類(lèi)信息表,如數(shù)組信息表,并進(jìn)行相關(guān)的語(yǔ)義檢查。它們?nèi)叩年P(guān)系如下:LL(1)語(yǔ)法分析遞歸下降語(yǔ)法分析詞法分析語(yǔ)義分析-30-第三部分詞法分析源程序一般表現(xiàn)為字符串(機(jī)器語(yǔ)言稱其為ASCII碼)序列的形式,而編譯程序的翻譯工作應(yīng)該在單詞一級(jí)上進(jìn)行,這與自然語(yǔ)言的翻譯理解過(guò)程是類(lèi)似的。因此要進(jìn)行編譯工作,首先要把源程序的字符序列翻譯成單詞序列。詞法分析是編譯過(guò)程的第一階段。它的任務(wù)就是對(duì)輸入的字符串形式的源程序按順序進(jìn)行掃描,根據(jù)源程序的詞法規(guī)則識(shí)別具有獨(dú)立意義的單詞(符

5、號(hào)),并輸出與其等價(jià)的TOKEN序列。TOKEN是單詞(符號(hào))的內(nèi)部表示。完成詞法分析任務(wù)的程序稱為詞法分析程序,通常也稱為詞法分析器或掃描器(scanner)。TOKEN是單詞在編譯程序處理過(guò)程中的一種內(nèi)部表示,也是詞法分析程序?qū)Τ绦蛑懈黝?lèi)單詞進(jìn)行處理之后的輸出形式。對(duì)于一種語(yǔ)言而言,如何對(duì)它的單詞進(jìn)行分類(lèi),每一類(lèi)單詞的TOKEN數(shù)據(jù)結(jié)構(gòu)的形式如何,都沒(méi)有固定的模式,可以隨編譯程序的不同而不同。通常TOKEN的結(jié)構(gòu)可以分成兩部分,單詞的語(yǔ)法信息和語(yǔ)義信息。其中語(yǔ)法信息記錄的是這個(gè)單詞的種類(lèi),語(yǔ)義信息則記錄著這個(gè)單詞的具體信息。這樣,就能為以后的語(yǔ)法分析和語(yǔ)義分析處理單詞做好準(zhǔn)備。SNL

6、語(yǔ)法分析對(duì)每類(lèi)單詞的分析結(jié)果的TOKEN結(jié)構(gòu)為三元組(詞法信息、語(yǔ)義信息以及該單詞在源程序中的行號(hào))。本SNL編譯器單詞的內(nèi)部表示如下:行號(hào)(便于出錯(cuò)處理)TOKEN的內(nèi)部表示語(yǔ)法信息及其字符串表示語(yǔ)義信息及其字符串表示SNL語(yǔ)言的單詞分類(lèi)如下:(1):保留字保留字一般是由語(yǔ)言系統(tǒng)自身定義的,SNL語(yǔ)言中的保留字有program,while,if,fi等等。(2):標(biāo)識(shí)符用來(lái)標(biāo)識(shí)程序中各個(gè)對(duì)象的名稱。由用戶自己定義用來(lái)表示變量名,數(shù)組名或者過(guò)程名等。SNL語(yǔ)言中標(biāo)識(shí)符由字母開(kāi)頭,字母、數(shù)字的任意組合組成的。(3):常量用來(lái)表示各類(lèi)常數(shù)。如字符型常量,實(shí)行常量,布爾常量等。(4):運(yùn)算符表

7、示程序中算術(shù)運(yùn)算、邏輯運(yùn)算、字符運(yùn)算的確定字符或字符串。SNL語(yǔ)言中的運(yùn)算符有+,—,*,/,<和:=六種運(yùn)算符。(5):界限符包括逗號(hào)分號(hào)等。SNL語(yǔ)言中的‘;’表示一條語(yǔ)句結(jié)束,‘.’表示程序結(jié)束等等。-30-實(shí)現(xiàn)詞法分析器的注意事項(xiàng):1.保留字和標(biāo)識(shí)符名字的區(qū)分2.復(fù)合單詞的處理3.向前搜索及回退4.數(shù)字的轉(zhuǎn)換5.輸入時(shí)邊界的處理6.注釋的處理詞法分析主要的函數(shù)有:getTokenlist()、getNextChar()、un

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。