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

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

ID:12583102

大?。?32.00 KB

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

時(shí)間:2018-07-17

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

《基于算符優(yōu)先分析方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

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

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

3、式文法G[E’]構(gòu)造算符優(yōu)先關(guān)系表。計(jì)算算符優(yōu)先只針對(duì)于終結(jié)符,終結(jié)符之間的優(yōu)先關(guān)系有三種,在計(jì)算優(yōu)先關(guān)系之前我們先定義兩個(gè)集合,對(duì)于任意兩個(gè)終結(jié)符(a,b)FIRSTVT(B)={b

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

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

6、結(jié)符B的LASTVT(B),觀察如下形式的產(chǎn)生式A->…Bb…對(duì)每一a∈LASTVT(B)有a≯b成立表達(dá)式文法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、***************************************簡(jiǎn)單表達(dá)式文法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)先表/****************************************************************************判

15、斷一個(gè)符號(hào)在算符優(yōu)先表中位置**@paramc*@return*/privatestaticintjudgePriority(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

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(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)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。