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

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

ID:18205617

大小:300.50 KB

頁數(shù):23頁

時間:2018-09-15

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

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

1、基于算符優(yōu)先分析方法的表達式語法分析器年級:2007級班級:計算機科學與技術(shù)四班姓名:歐垚學號:20074042154指導(dǎo)老師:段明秀年月日目錄摘要……………………………………………………………2關(guān)鍵字…………………………………………………………2構(gòu)造算符優(yōu)先表………………………………………………3構(gòu)造優(yōu)先分析器………………………………………………6分析歸約流程圖………………………………………………7運行……………………………………………………………8測試……………………………………………………………9參考文獻……………………………………………………12附加代碼………………………………

2、……………………13摘要:算符優(yōu)先分析法是Floyd在1963年首先提出來的,是一種古典而又實用的方法,用這種方法在分析程序語言中的各類表達式時尤為有效。不少編譯程序中都使用這種方法分析表達式。算符優(yōu)先分析法就是仿照算術(shù)表達式的運算過程而提出的一種自底向上的語法分析方法。其基本思想是:首先規(guī)定算符,這里是文法的終極符之間的優(yōu)先關(guān)系,然后根據(jù)這種優(yōu)先關(guān)系,通過比較相鄰算符的優(yōu)先次序來確定句型中的“句柄”,然后進行歸約。算符優(yōu)先分析法的關(guān)鍵:算符優(yōu)先分析法的關(guān)鍵就是尋找當前句型中的最左素短語,并歸約它。關(guān)鍵字:小于、大于、等于、句柄、歸約、一、對表達式文法G[E’]構(gòu)造算符優(yōu)先關(guān)系表。計算

3、算符優(yōu)先只針對于終結(jié)符,終結(jié)符之間的優(yōu)先關(guān)系有三種,在計算優(yōu)先關(guān)系之前我們先定義兩個集合,對于任意兩個終結(jié)符(a,b)FIRSTVT(B)={b

4、B=>b…或B=>Cb…},其中…表示V*中的符號串。LASTVT(B)={a

5、B=>…a或B=>…aC}三種優(yōu)先關(guān)系:(1)等于關(guān)系:可直接查看產(chǎn)生式的右部,對如下形式的產(chǎn)生式A->…ab…A->…aBb…則有a=b成立。(2)小于關(guān)系:求出每個非終結(jié)符B的FIRSTVT(B),觀察如下形式的產(chǎn)生式A->…aB…對每一b∈FIRSTVT(B)有a≮b成立(3)大于關(guān)系:計算每個非終結(jié)符B的LASTVT(B),觀察如下形式的產(chǎn)生式A->…Bb

6、…對每一a∈LASTVT(B)有a≯b成立表達式文法G[E’]:E’→#E#E→E+Q

7、QQ→Q-T

8、TT→T*F

9、FF→F/M|MM→M^P|PP→(E)|i根據(jù)上面的規(guī)則手工構(gòu)造上述文法的算符優(yōu)先表如下:+-*/^()i#+≯≮≮≮≮≮≯≮≯-≯≯≮≮≮≮≯≮≯*≯≯≯≮≮≮≯≮≯/≯≯≯≯≮≮≯≮≯^≯≯≯≯≯≮≯≮≯(≮≮≮≮≮≮=≮)≯≯≯≯≯≯≯i≯≯≯≯≯≯≯#≮≮≮≮≮=packagecom.op.core;/********************************************************************************簡

10、單表達式文法G[E’]構(gòu)造算符優(yōu)先關(guān)系表。*E’→#E#*E→E+Q

11、Q*Q→Q-T

12、T*T→T*F

13、F*F→F/M|M*M→M^P|P*P→(E)|i*@author*/publicclassPriorityTable{privatestaticchartable[][]={//+*/i()#^{'>','<','<','<','<','>','>','<'},//+{'>','>','>','<','<','>','>','<'},//*{'>','>','>','<','<','>','>','<'},///{'>','>','>','$','$','>','>','>'},//

14、i{'<','<','<','<','<','=','$','<'},//({'>','>','>','$','$','>','>','>'},//){'<','<','<','<','<','$','=','<'},//#{'>','>','>','<','<','>','>','<'},//^};//算符優(yōu)先表/****************************************************************************判斷一個符號在算符優(yōu)先表中位置**@paramc*@return*/privatestaticintjudgePriori

15、ty(charc){intpriority=0;switch(c){case'+':priority=0;break;case'*':priority=1;break;case'/':priority=2;break;case'i':priority=3;break;case'(':priority=4;break;case')':priority=5;break;case'#':priority=6;break;case'^':priorit

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

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

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