編譯原理遞歸下降分析法實(shí)驗(yàn).doc

編譯原理遞歸下降分析法實(shí)驗(yàn).doc

ID:57604582

大小:141.52 KB

頁數(shù):9頁

時(shí)間:2020-08-28

編譯原理遞歸下降分析法實(shí)驗(yàn).doc_第1頁
編譯原理遞歸下降分析法實(shí)驗(yàn).doc_第2頁
編譯原理遞歸下降分析法實(shí)驗(yàn).doc_第3頁
編譯原理遞歸下降分析法實(shí)驗(yàn).doc_第4頁
編譯原理遞歸下降分析法實(shí)驗(yàn).doc_第5頁
資源描述:

《編譯原理遞歸下降分析法實(shí)驗(yàn).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、計(jì)算機(jī)科學(xué)與工程學(xué)院《編譯原理》試驗(yàn)報(bào)告[二]專業(yè)班級(jí)10計(jì)算機(jī)工程02試驗(yàn)地點(diǎn)計(jì)算機(jī)大樓8號(hào)機(jī)房學(xué)生學(xué)號(hào)1005080214指導(dǎo)教師蔡瓊學(xué)生姓名劉子龍?jiān)囼?yàn)時(shí)間2012-11-24試驗(yàn)項(xiàng)目算法與數(shù)據(jù)結(jié)構(gòu)試驗(yàn)類別基礎(chǔ)性()設(shè)計(jì)性()綜合性(√)其它()試驗(yàn)?zāi)康募耙螅?)掌握自上而下語法分析的要求與特點(diǎn)。(2)掌握遞歸下降語法分析的基本原理和方法。(3)掌握相應(yīng)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。成績(jī)?cè)u(píng)定表類別評(píng)分標(biāo)準(zhǔn)分值得分合計(jì)上機(jī)表現(xiàn)積極出勤、遵守紀(jì)律主動(dòng)完成設(shè)計(jì)任務(wù)30分程序與報(bào)告程序代碼規(guī)范、功能正確報(bào)告詳實(shí)完整、體現(xiàn)收獲70分備注:評(píng)閱教師:日期:年月日試驗(yàn)內(nèi)容一、實(shí)驗(yàn)?zāi)康?/p>

2、和要求1、實(shí)驗(yàn)?zāi)康模海?)掌握自上而下語法分析的要求與特點(diǎn)。(2)掌握遞歸下降語法分析的基本原理和方法。(3)掌握相應(yīng)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。2、實(shí)驗(yàn)內(nèi)容:編程實(shí)現(xiàn)給定算術(shù)表達(dá)式的遞歸下降分析器。算術(shù)表達(dá)式文法如下:EàE+T

3、TTàT*F

4、FFà(E)

5、i二、設(shè)計(jì)分析根據(jù)實(shí)驗(yàn)要求,采用遞歸下降的方法進(jìn)行詞法分析。遞歸下降分析法是一種確定的自上而下分析方法,它的基本方法是給文法每一個(gè)非終結(jié)符號(hào)設(shè)計(jì)一相應(yīng)的子程序。由于文法的產(chǎn)生式往往是遞歸的,因而這些子程序也是遞歸的,也就是說,只要調(diào)用第一個(gè)產(chǎn)生式,程序就會(huì)執(zhí)行到結(jié)束,其他子程序?qū)?huì)在其中調(diào)用。過程體按規(guī)則右部符號(hào)串的順

6、序編寫,構(gòu)造一個(gè)數(shù)組s,用來存放輸入字符串,構(gòu)造一個(gè)函數(shù)read(),將s[]中將要匹配的字符讀入ch中,用于字符匹配時(shí)做比較,走產(chǎn)生式右部的表法式,遇到終結(jié)符,就進(jìn)行匹配,失敗則程序結(jié)束,字符串不滿足要求;遇到非終結(jié)符,則調(diào)用相應(yīng)的函數(shù)。當(dāng)讀到字符串的標(biāo)識(shí)符’#’號(hào)時(shí),程序結(jié)束,字符串滿足要求。三、源程序代碼/****************************************遞歸下降詞法分析**************************************************///文法G[E]:E-->E+T

7、T//T-->T*F

8、F/

9、/F-->(E)

10、i/*********************************************************************************************************/#include#include#include#defineMax50voidE_function();voidEE_function();voidT_function();voidTT_function();voidF_function();staticinti=-1;cha

11、rch;charstr[Max];voidTheEnd(){printf("Wrong!");exit(0);}voidread(){i++;if(*(str+i)!='#')ch=*(str+i);else{printf("分析結(jié)果如下:");printf("Right!");exit(0);}}voidE_function(){printf("tE");T_function();EE_function();}voidEE_function(){EE_lab:printf("tEE");if(ch=='+'){read();T_functi

12、on();gotoEE_lab;}else{if(ch!='#'&&ch!=')')TheEnd();}}voidT_function(){printf("tT");F_function();TT_function();}voidTT_function(){TT_lab:printf("tTT");if(ch=='*'){read();F_function();gotoTT_lab;}else{if(ch!='+'&&ch!=')'&&ch!='#')TheEnd();}}voidF_function(){printf("tF");if(ch=='

13、('){read();E_function();if(ch!=')')TheEnd();elseread();}elseif(ch=='i')read();elseTheEnd();}intmain(){printf("遞歸下降分析法:");charq[2]={"#"};printf("請(qǐng)輸入字符串:");gets(str);strcat(str,q);if(strlen(str)

當(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)有爭(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)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。