算符優(yōu)先分析方法

算符優(yōu)先分析方法

ID:1610303

大?。?99.50 KB

頁數(shù):25頁

時間:2017-11-12

算符優(yōu)先分析方法_第1頁
算符優(yōu)先分析方法_第2頁
算符優(yōu)先分析方法_第3頁
算符優(yōu)先分析方法_第4頁
算符優(yōu)先分析方法_第5頁
資源描述:

《算符優(yōu)先分析方法》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、目錄1.課程設(shè)計(jì)的目的與原理11.1設(shè)計(jì)目的11.2設(shè)計(jì)原理12.課程設(shè)計(jì)環(huán)境13.課程設(shè)計(jì)內(nèi)容23.1算符優(yōu)先分析流程圖23.2算符優(yōu)先總流程圖33.3算符優(yōu)先文法43.4程序調(diào)試54.總結(jié)6附錄62424算符優(yōu)先分析方法1.課程設(shè)計(jì)目的與原理1.1設(shè)計(jì)目的1.了解利用算符優(yōu)先算法進(jìn)行移進(jìn)規(guī)約分析的方法?。2.鍛煉和提高自己的編程能力。3.熟悉編譯原理語法分析的方法,加深對算符優(yōu)先基本方法的了解。4.進(jìn)一步理解編譯原理,更好的的學(xué)習(xí)它的思路,掌握編譯原理的理論基礎(chǔ)。5.了解算符優(yōu)先分析和規(guī)范規(guī)約的不同以及優(yōu)缺點(diǎn)。1.2設(shè)計(jì)原理算符優(yōu)先分析方法是根據(jù)算符之間的優(yōu)

2、先關(guān)系而設(shè)計(jì)的一種自底向上的語法分析方法。算符優(yōu)先分析的基本思想是只規(guī)定算符之間的優(yōu)先關(guān)系,也就是只考慮終結(jié)符之間的優(yōu)先關(guān)系。由于算符優(yōu)先分析不考慮非終結(jié)符之間的優(yōu)先關(guān)系,在歸約過程中只要找到可歸約串就歸約,并不考慮歸約到哪個非終結(jié)符,因而算符優(yōu)先歸約不是規(guī)范歸約。2.課程設(shè)計(jì)環(huán)境1.硬件運(yùn)行環(huán)境:WindowsXP2.軟件運(yùn)行環(huán)境:VC++6.0版本243.課程設(shè)計(jì)內(nèi)容3.1算符優(yōu)先分析流程圖k:=k+1s[k]=a置初值塊:k:=1,s[k]:=”#”下一個輸入符讀入as[k]∈VTYNj:=kj:=k-1s[j]>a?Q:=s[j]s[j]

3、]∈VTYNj:=j-1j:=j-1s[j]

4、>E+TE->TT->T*FT->FF->(E)F->i⑴計(jì)算FIRSTVE和LASTVT集合FirstVT(E)={+,*,(,i}LastVT(E)={+,*,),i}FirstVT(T)={*,(,i}LastVT(T)={*,),i}FirstVT(F)={(,i}LastVT(F)={),i}FirstVT(Q)={#}LastVT(Q)={#}⑵構(gòu)造算符優(yōu)先矩陣 +*()i#+><<><>*>><><>(<<<=<)>>>>i>> > > #<<<  <= ⑶對于輸入串i+i*i+i#的手動分析過程:步驟符號棧當(dāng)前符號+剩余輸入串移進(jìn)或歸約0#i+i

5、*i+i#預(yù)備1#i+i*i+i#移進(jìn)2#N+i*i+i#歸約3#N+i*i+i#移進(jìn)4#N+i*i+i#移進(jìn)5#N+N*i+i#歸約6#N+N*i+i#移進(jìn)7#N+N*i+i#移進(jìn)8#N+N*N+i#歸約9#N+N+i#歸約10#N+i#歸約11#N+i#移進(jìn)12#N+i#移進(jìn)13#N+N#歸約14#N#歸約15#N#接受24見附錄3.4程序調(diào)試?yán)?、輸入產(chǎn)生式的個數(shù):2、輸入文法:3、判斷文法4、生成非終結(jié)符的FIRSTVT集和LASTVT集:5、生成算符優(yōu)先分析表:5、輸入字符串進(jìn)行分析:24輸出結(jié)果與自己做的結(jié)果一模一樣,說明設(shè)計(jì)成功。4.總結(jié)經(jīng)過此次

6、編譯課程設(shè)計(jì),使我對算符優(yōu)先分析有了更深更進(jìn)一步的理解,而且也鍛煉了自己的程序編碼能力,對自己今后的道路影響不小。當(dāng)然還有不足之處以后會慢慢改進(jìn)。在試驗(yàn)過程中,我忘記在程序最后面加上一句getchar();,導(dǎo)致我試驗(yàn)時,直接運(yùn)行.exe文件,當(dāng)運(yùn)行到最后輸入歸約字符串時,執(zhí)行完后界面自動關(guān)閉,導(dǎo)致我不能截圖,經(jīng)過不屑的努力,有兩種解決方法,第一可以用VC軟件運(yùn)行,界面就不會關(guān)閉。第二種是在程序里加上getchar();,.exe文件運(yùn)行到最后就不會自動關(guān)閉。附錄#include#include#include

7、io.h>typedefstruct{charR;charr;24intflag;}array;typedefstruct{charE;chare;}charLode;typedefstruct{charLode*base;inttop;}charstack;charstr[80][80],arr[80][80],brr[80][80];arrayF[20];intm,kk,p,ppp,FF=1;charr[10];intcrr[20][20],FLAG=0;charccrr1[1][20],ccrr2[20][1];voidInitstack(charstac

8、k&s)//定義棧{s.

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

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

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