編譯原理實(shí)驗(yàn)二 預(yù)測(cè)分析法.doc

編譯原理實(shí)驗(yàn)二 預(yù)測(cè)分析法.doc

ID:56951370

大?。?12.50 KB

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

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

編譯原理實(shí)驗(yàn)二  預(yù)測(cè)分析法.doc_第1頁(yè)
編譯原理實(shí)驗(yàn)二  預(yù)測(cè)分析法.doc_第2頁(yè)
編譯原理實(shí)驗(yàn)二  預(yù)測(cè)分析法.doc_第3頁(yè)
編譯原理實(shí)驗(yàn)二  預(yù)測(cè)分析法.doc_第4頁(yè)
編譯原理實(shí)驗(yàn)二  預(yù)測(cè)分析法.doc_第5頁(yè)
資源描述:

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

1、實(shí)驗(yàn)二預(yù)測(cè)分析法一、實(shí)驗(yàn)項(xiàng)目名稱預(yù)測(cè)分析法二、實(shí)驗(yàn)?zāi)康母鶕?jù)某一LL(1)文法編制調(diào)試預(yù)測(cè)分析程序,以便對(duì)任意輸入的符號(hào)串進(jìn)行分析。本次實(shí)驗(yàn)的目的主要是加深對(duì)預(yù)測(cè)分析法的理解。三、實(shí)驗(yàn)環(huán)境Win8系統(tǒng),VC++6.0軟件,C語(yǔ)言開發(fā)工具四、實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)的LL(1)文法為表達(dá)式文法:E→E+T

2、TT→T*F

3、FF→i

4、(E)編寫識(shí)別表達(dá)式文法的合法句子的預(yù)測(cè)分析程序,對(duì)輸入的任意符號(hào)串,給出分析過(guò)程及分析結(jié)果。分析過(guò)程要求輸出步驟、分析棧、剩余輸入串和所用產(chǎn)生式。如果該符號(hào)串不是表達(dá)式文法的合法句子,要給出盡量詳細(xì)的錯(cuò)誤提示。五、實(shí)

5、驗(yàn)步驟首先將終結(jié)符和非終結(jié)符以及預(yù)測(cè)分析表計(jì)算出來(lái),并保存到數(shù)組中然后對(duì)輸入的字符進(jìn)行分析,將一個(gè)個(gè)終結(jié)符進(jìn)行分配在分配的過(guò)程中輸出每一步步驟對(duì)錯(cuò)誤處,顯示步驟數(shù)和錯(cuò)誤字符六、源程序清單、測(cè)試數(shù)據(jù)、結(jié)果源程序:#include#include#includeusingnamespacestd;charzhong[6]={'i','+','*','(',')','#'};charfzhong[5]={'E','R','T','Y','F'};charshu[20];9//R代表

6、E'Y代表T'stringbiao[5][6]={{"TR","","","TR","",""},{"","+TR","","","@","@"},//@代表空{(diào)"FY","","","FY","",""},{"","@","*FY","","@","@"},{"i","","","(E)","",""}};#defineN20;typedefchartype;typedefstruct{type*base;type*top;intstacksize;}sqstack;voidinitstack(sqstack&s){s.base=

7、newtype[2];if(!s.base)cout<<"錯(cuò)誤";s.top=s.base;s.stacksize=N;}voidpush(sqstack&s,typee){if(s.top-s.base==s.stacksize)cout<<"棧滿";*s.top++=e;}voidpop(sqstack&s,type&e){if(s.top==s.base)cout<<"棧空";e=*--s.top;}typegettop(sqstacks)9{if(s.top==s.base)cout<<"???;return*(s.top-

8、1);}intfind1(charx){for(inti=0;i<5;i++){if(x==fzhong[i]){break;}}returni;}intfind2(charx){for(inti=0;i<6;i++){if(x==zhong[i]){break;}}returni;}voidshowstack(sqstackfen){chara;sqstackx;initstack(x);while(fen.top!=fen.base){pop(fen,a);push(x,a);}9while(x.top!=x.base){pop

9、(x,a);cout<

10、p(fen,ch2);}elseif(gettop(fen)=='#'){cout<

11、d2(shu[i])]=="@"){cout<

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(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)系客服處理。