《編譯原理》實(shí)驗(yàn)二.doc

《編譯原理》實(shí)驗(yàn)二.doc

ID:60788124

大?。?7.00 KB

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

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

《編譯原理》實(shí)驗(yàn)二.doc_第1頁(yè)
《編譯原理》實(shí)驗(yàn)二.doc_第2頁(yè)
《編譯原理》實(shí)驗(yàn)二.doc_第3頁(yè)
《編譯原理》實(shí)驗(yàn)二.doc_第4頁(yè)
《編譯原理》實(shí)驗(yàn)二.doc_第5頁(yè)
資源描述:

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

1、實(shí)驗(yàn)二預(yù)測(cè)分析法設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)時(shí)間:2013.5.7,5.21,6.4實(shí)驗(yàn)?zāi)康脑O(shè)計(jì)一個(gè)非遞歸預(yù)測(cè)分析器,實(shí)現(xiàn)對(duì)表達(dá)式語(yǔ)言的分析,理解自上而下語(yǔ)法分析方法的基本思想,掌握設(shè)計(jì)非遞歸預(yù)測(cè)分析器的基本方法。實(shí)驗(yàn)要求建立文法及其LL(1)分析表表示的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)并實(shí)現(xiàn)相應(yīng)的預(yù)測(cè)分析器,對(duì)源程序經(jīng)詞法分析后生成的二元式代碼流進(jìn)行預(yù)測(cè)分析,如果輸入串是文法定義的句子則輸出“是”,否則輸出“否”。實(shí)驗(yàn)內(nèi)容(1)文法描述及其LL(1)分析表表達(dá)式語(yǔ)言(XL)的語(yǔ)法規(guī)則如下:1.程序→表達(dá)式;2.

2、表達(dá)式;程序prgm→expr;prgm’prgm’→prgmprgm’→ε3.表達(dá)式→表達(dá)式+項(xiàng)4.

3、項(xiàng)ex

4、pr→termexpr’expr’→+termexpr’expr’→ε5.項(xiàng)→項(xiàng)*因式6.

5、因式term→factorterm’term’→*factorterm’term’→ε7.因式→num_or_id8.

6、(表達(dá)式)factor→(expr)factor→num將該語(yǔ)言的文法轉(zhuǎn)換為如下的LL(1)文法:1prgm→expr;prgm’7term→factorterm’2prgm’→prgm8term’→*factorterm’3prgm’→ε9term’→ε4expr→termexpr’10factor→(expr)5expr’→+termexpr’11factor→num6expr’

7、→εfirst(prgm)={(,num}first(prgm’)={(,num,ε}first(expr)={(,num}first(expr’)={+,ε}first(term)={(,num}first(term’)={*,ε}first(factor)={(,num}follow(prgm)={#}follow(prgm’)={#}follow(expr)={;,)}follow(expr’)={;,)}follow(term)={+,;,)}follow(term’)={+,;,)}follow(factor)={*,+,;}select(prgm→expr;prgm’)={(,n

8、um}select(prgm’→prgm)={(,num}select(prgm’→ε)={#}select(expr→termexpr’)={(,num}select(expr’→+termexpr’)={+}select(expr’→ε)={;,)}select(term→factorterm’)={(,num}select(term’→*factorterm’)={*}select(term’→ε)={+,;,)}select(factor→(expr))={(}select(factor→num)={num}該LL(1)文法的LL(1)分析表如下:TNNum+*();#prgm11p

9、rgm’223expr44expr’566term77term’9899factor1110對(duì)文法中每個(gè)文法符號(hào)指定一個(gè)常數(shù)值,符號(hào)編碼表如下:文法符號(hào)常數(shù)值備注(Num+);*#4625130終結(jié)符(#為輸入結(jié)束標(biāo)志)Exprexpr’termterm’factorprgmprgm’258260259262261256257非終結(jié)符(2)文法及其LL(1)分析表的數(shù)據(jù)結(jié)構(gòu)文法的產(chǎn)生式可用數(shù)組Yy_pushtab[]存放。數(shù)組的第一個(gè)下標(biāo)是產(chǎn)生式號(hào),第一個(gè)產(chǎn)生式的序號(hào)為0;每列按逆序存放該產(chǎn)生式右部各符號(hào)的常數(shù)值,并以0結(jié)束。對(duì)于該表達(dá)式語(yǔ)言XL的LL(1)分析表,可用數(shù)組Yy_d[]存放。

10、第一個(gè)下標(biāo)是非終結(jié)符數(shù)值,第二個(gè)下標(biāo)是終結(jié)符數(shù)值,數(shù)組元素的值為:0(表示接受),1(表示產(chǎn)生式號(hào)),-1(表示語(yǔ)法錯(cuò))。數(shù)組Yy_pushtab[]的具體內(nèi)容及表示如下:012345678910Yyp00257,1,258,0prgm’;exprYyp01256,0prgmYyp020Yyp03260,259,0expr’term260,259,2,0expr’term+262,261,2,0term’factor*05,258,4,0)expr(6,0Num0262,261,0term’factorYyp04Yyp05Yyp06Yyp07Yyp08Yyp09Yyp10數(shù)組Yy_d[]的具

11、體內(nèi)容及表示如下:0123456#;+*()Num-1-1-1-10-102-1-1-11-11-1-1-1-13-13-1-1-1-16-16-154-1-15-1-1-1-1-19-110-1887-18-1prgm256prgm’257expr258term259expr’260factor261term’262(3)預(yù)測(cè)分析器總控程序結(jié)構(gòu)預(yù)測(cè)分析器總控程序使用上面的兩個(gè)表Yy_pushtab、Yy_d

當(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. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(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)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。