PL0語言編譯器分析實(shí)驗(yàn)報(bào)告.doc

PL0語言編譯器分析實(shí)驗(yàn)報(bào)告.doc

ID:54058741

大?。?53.50 KB

頁數(shù):9頁

時(shí)間:2020-04-12

PL0語言編譯器分析實(shí)驗(yàn)報(bào)告.doc_第1頁
PL0語言編譯器分析實(shí)驗(yàn)報(bào)告.doc_第2頁
PL0語言編譯器分析實(shí)驗(yàn)報(bào)告.doc_第3頁
PL0語言編譯器分析實(shí)驗(yàn)報(bào)告.doc_第4頁
PL0語言編譯器分析實(shí)驗(yàn)報(bào)告.doc_第5頁
資源描述:

《PL0語言編譯器分析實(shí)驗(yàn)報(bào)告.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、.PL/0語言編譯器分析實(shí)驗(yàn)報(bào)告一、實(shí)驗(yàn)?zāi)康耐ㄟ^閱讀與解析一個(gè)實(shí)際編譯器(PL/0語言編譯器)的源代碼,加深對(duì)編譯階段(包括詞法分析、語法分析、語義分析、中間代碼生成等)和編譯系統(tǒng)軟件結(jié)構(gòu)的理解,并達(dá)到提高學(xué)生學(xué)習(xí)興趣的目的。二、實(shí)驗(yàn)要求(1)要求掌握基本的程序設(shè)計(jì)技巧(C語言)和閱讀較大規(guī)模程序源代碼的能力;(2)理解并掌握編譯過程的邏輯階段及各邏輯階段的功能;(3)要求能把握整個(gè)系統(tǒng)(PL/0語言編譯器)的體系結(jié)構(gòu),各功能模塊的功能,各模塊之間的接口;(4)要求能總結(jié)出實(shí)現(xiàn)編譯過程各邏輯階段功能采用的具體算法

2、與技術(shù)。三、實(shí)驗(yàn)步驟(1)根據(jù)PL/0語言的語法圖,理解PL/0語言各級(jí)語法單位的結(jié)構(gòu),掌握PL/0語言合法程序的結(jié)構(gòu);(2)從總體上分析整個(gè)系統(tǒng)的體系結(jié)構(gòu)、各功能模塊的功能、各模塊之間的調(diào)用關(guān)系、各模塊之間的接口;(3)詳細(xì)分析各子程序和函數(shù)的代碼結(jié)構(gòu)、程序流程、采用的主要算法及實(shí)現(xiàn)的功能;(4)撰寫分析報(bào)告,主要容包括系統(tǒng)結(jié)構(gòu)框圖、模塊接口、主要算法、各模塊程序流程圖等。四、報(bào)告容 pl/0語言是pascal語言的一個(gè)子集,我們這里分析的pl/0的編譯程序包括了對(duì)pl/0語言源程序進(jìn)行分析處理、編譯生成類pc

3、ode代碼,并在虛擬機(jī)上解釋運(yùn)行生成的類pcode代碼的功能。word專業(yè)資料.pl/0語言編譯程序采用以語法分析為核心、一遍掃描的編譯方法。詞法分析和代碼生成作為獨(dú)立的子程序供語法分析程序調(diào)用。語法分析的同時(shí),提供了出錯(cuò)報(bào)告和出錯(cuò)恢復(fù)的功能。在源程序沒有錯(cuò)誤編譯通過的情況下,調(diào)用類pcode解釋程序解釋執(zhí)行生成的類pcode代碼。PL/0語言文法的EBNF表示EBNF表示的符號(hào)說明?!础涤米笥壹饫ㄌ?hào)括起來的中文字表示語法構(gòu)造成分,或稱語法單位,為非終結(jié)符?!?該符號(hào)的左部由右部定義,可讀作“定義為”。

4、表示“或

5、”,為左部可由多個(gè)右部定義。{}花括號(hào)表示其的語法成分可以重復(fù)。在不加上下界時(shí)可重復(fù)0到任意次數(shù),有上下界時(shí)為可重復(fù)次數(shù)的限制。PL/0編譯程序過程與函數(shù)定義層次結(jié)構(gòu)圖word專業(yè)資料.PL/0的解釋執(zhí)行結(jié)構(gòu)PL/0語言解釋執(zhí)行程序PL/0語言目標(biāo)程序輸入數(shù)據(jù)輸出數(shù)據(jù)PL/0編譯程序結(jié)構(gòu)word專業(yè)資料.詞法分析程序語法語義分析程序代碼生成程序表格管理程序出錯(cuò)處理程序PL/0源程序目標(biāo)程序編譯程序總體流程圖PL/0編譯程序的語法分析  PL/0編譯程序語法、語義分析是整個(gè)編譯程序設(shè)計(jì)與實(shí)現(xiàn)的核心部分,要求學(xué)員努力

6、學(xué)習(xí)掌握實(shí)現(xiàn)技術(shù)和方法?,F(xiàn)分別說明語法分析實(shí)現(xiàn)的主要思想方法和語義分析的實(shí)現(xiàn)。word專業(yè)資料.  語法分析的任務(wù)是識(shí)別由詞法分析給出的單詞符號(hào)序列在結(jié)構(gòu)上是否符合給定的文法規(guī)則。PL/0語言的文法規(guī)則已在2.1節(jié)中給出。本節(jié)將以語法圖描述的語法形式為依據(jù),給出語法分析過程的直觀思想?! L/0編譯程序的語法分析采用了自頂向下的遞歸子程序法??捎孟旅婧唵蔚腜L/0程序?yàn)槔龢?gòu)造其語法分析樹語法調(diào)用關(guān)系圖word專業(yè)資料.PL/0編譯程序語法分析的設(shè)計(jì)與實(shí)現(xiàn)〈表達(dá)式〉的遞歸子程序?qū)崿F(xiàn)procedureexpr;be

7、ginifsymin[plus,minus]thenbegingetsym;term;endelseterm;whilesymin[plus,minus]dobegingetsym;term;endend;〈因子〉∷=〈標(biāo)識(shí)符〉

8、〈無符號(hào)整數(shù)〉

9、‘(’〈表達(dá)式〉‘)’〈因子〉的遞歸子程序?qū)崿F(xiàn)procedurefactor;beginifsym<>identthenbeginifsym<>numberthenbeginifsym=‘(‘thenbegingetsym;expr;ifsym=‘)’thengetsym

10、elseerrorendelseerrorendelsegetsymendelsegetsymend;說明部分的分析與處理word專業(yè)資料.對(duì)每個(gè)過程(含主程序)說明的對(duì)象(變量,常量和過程)造符號(hào)表,登錄標(biāo)識(shí)符的屬性。標(biāo)識(shí)符的屬性:種類,所在層次,值和分配的相對(duì)位置。登錄信息由ENTER過程完成。常量定義語句的處理語法:<常量說明部分>::=const<常量定義>{,<常量定義>};<常量定義>::=<標(biāo)識(shí)符>=<無符號(hào)整數(shù)><無符號(hào)整數(shù)>::=<數(shù)字>{<數(shù)字>}ifsym=constsymthenbegin

11、getsym;(*獲取下一個(gè)token,正常應(yīng)為用作常量名的標(biāo)識(shí)符*)repeat(*反復(fù)進(jìn)行常量聲明*)constdeclaration;(*聲明以當(dāng)前token為標(biāo)識(shí)符的常量*)whilesym=commado(*如果遇到了逗號(hào)則反復(fù)聲明下一常量*)begingetsym;(*獲取下一個(gè)token,這里正好應(yīng)該是標(biāo)識(shí)符*)constdeclaration(*聲明以當(dāng)前

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

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

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(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)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。