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

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

ID:14842882

大?。?99.50 KB

頁數(shù):25頁

時間:2018-07-30

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

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

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

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

3、]∈VTYNj:=kj:=k-1s[j]>a?Q:=s[j]s[j]

4、法分析表輸入需要驗證的字符串,以#結束輸出結果輸出結果結束輸入文法規(guī)則和數(shù)目NY243.3算符優(yōu)先文法例已知表達式文法為:E->E+TE->TT->T*FT->FF->(E)F->i⑴計算FIRSTVE和LASTVT集合FirstVT(E)={+,*,(,i}LastVT(E)={+,*,),i}FirstVT(T)={*,(,i}LastVT(T)={*,),i}FirstVT(F)={(,i}LastVT(F)={),i}FirstVT(Q)={#}LastVT(Q)={#}⑵構造算符優(yōu)先矩陣 +*()i#+><<>

5、<>*>><><>(<<<=<)>>>>i>> > > #<<<  <=?、菍τ谳斎氪甶+i*i+i#的手動分析過程:步驟符號棧當前符號+剩余輸入串移進或歸約0#i+i*i+i#預備1#i+i*i+i#移進2#N+i*i+i#歸約3#N+i*i+i#移進4#N+i*i+i#移進5#N+N*i+i#歸約6#N+N*i+i#移進7#N+N*i+i#移進8#N+N*N+i#歸約9#N+N+i#歸約10#N+i#歸約11#N+i#移進12#N+i#移進13#N+N#歸約14#N#歸約15#N#接受24見附錄3.4程序調試例:1、

6、輸入產(chǎn)生式的個數(shù):2、輸入文法:3、判斷文法4、生成非終結符的FIRSTVT集和LASTVT集:5、生成算符優(yōu)先分析表:5、輸入字符串進行分析:24輸出結果與自己做的結果一模一樣,說明設計成功。4.總結經(jīng)過此次編譯課程設計,使我對算符優(yōu)先分析有了更深更進一步的理解,而且也鍛煉了自己的程序編碼能力,對自己今后的道路影響不小。當然還有不足之處以后會慢慢改進。在試驗過程中,我忘記在程序最后面加上一句getchar();,導致我試驗時,直接運行.exe文件,當運行到最后輸入歸約字符串時,執(zhí)行完后界面自動關閉,導致我不能截圖,經(jīng)過

7、不屑的努力,有兩種解決方法,第一可以用VC軟件運行,界面就不會關閉。第二種是在程序里加上getchar();,.exe文件運行到最后就不會自動關閉。附錄#include#include#includetypedefstruct{charR;charr;24intflag;}array;typedefstruct{charE;chare;}charLode;typedefstruct{charLode*base;inttop;}charstack;charstr

8、[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(charstack&s)//定義棧{s.

當前文檔最多預覽五頁,下載文檔查看全文

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

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