版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、v1.0可編輯可修改編譯原理實驗報告題目:算符優(yōu)先分析法分析器學院計算機科學與技術專業(yè)xxxxxxxxxxxxxxxx學號xxxxxxxxxxxx姓名寧劍指導教師xxxx2015年xx月xx日算符優(yōu)先分析法分析器、實驗目的1 .理解自底向上優(yōu)先分析,比較和自頂向下優(yōu)先分析的不同。2 .理解算符優(yōu)先分析的特點,體會其和簡單優(yōu)先分析方法的不同3 .加深對編譯器語法分析的理解。二、實驗原理1 .自底向上優(yōu)先分析方法,也稱移進-歸約分析,粗略地說它的思想是對輸入符號用自左向右進行掃描,并將輸入符號逐個移入一個后進先出棧,邊移入邊分析,一旦棧頂符號用形成某個句型的句柄或可歸約用時,就將該產生式的左部非終
2、極符代替相應的右邊文法符號用。2 .算符優(yōu)先分析法的基本思想首先確定算符(確切地說是終結符)之間的優(yōu)先關系和結合性質,然后借助這種關系,比較相鄰算符之間的優(yōu)先級來確定句型的可歸約用,并進行歸約。注意:算符優(yōu)先分析過程是自下而上的歸約過程,但它的可歸約用未必是句柄,也就是說,算符優(yōu)先分析過程不是一種規(guī)范歸約。3 .終結符號間優(yōu)先關系的確定,用FIRSTVT?口LASTVT#算。4 .最左素短語所謂素短語是指這樣一個短語,它至少含有一個終結符,并且除它自身之外不再含有其它素短語。最左素短語是指處于句型最左邊的那個素短語。最左素短語是算符優(yōu)先分析算法的可歸約用05 .計算得到所給文法的算符優(yōu)先矩陣+
3、11()TT><<<n>>.A<V>+1><<>>1>>>><<<<>>>>耳<<<6.算符優(yōu)先分析的基本過程初值卜.=1,即口皿叮,當埔人沖讀人SCk VtT地7<& Vr除去丑QSG+lZHSM歸妁為Nki=j+1Sk)=H三、實驗要求使用算符優(yōu)先分析算法分析下面的文法:E'一#E#E+T|TT-T*F|FF一PAF|P4(E)|i其中i可以看作是一個終結符,無需作詞法分析。具體要求如下:1 .如果輸入
4、符號用為正確句子,顯示分析步驟,包括分析棧中的內容、優(yōu)先關系、輸入符號用的變化情況;2 .如果輸入符號用不是正確句子,則指示出錯位置。四、實驗結果(程序)及分析#include<>#include<cstring>#include<iostream>#include<iomanip>#defineMAX100usingnamespacestd;charSMAX;charshuruMAX,yuMAX;voidscanner();intpanyouxian(charx);voidshengyuchuan();intk;charyouxian77=
5、39;>','<','<','<','<','>','>','>','>','<','<','<','>','>','>','>','<','<','<','>',
6、39;>','>','>','>',$,$,'>','>','<','<','<','<','<','=','$','>','>','>',$,$,'>','>','<','<',
7、'<','<','<','$','=',;/優(yōu)先關系表,其中為大于,為小于,=為等于,$為空格intmain()intl,j;cout<<"請輸入一個字符串:";(shuru,MAX);/將輸入的字符串存到數(shù)組剩余輸入用移cout<<”步驟棧優(yōu)先關系當前符號進或歸約"<<endl;k=0;Sk='#';Sk+1='0'l=strlen(shuru);/求輸入字符串的長度for(j=0;j<l;j
8、+)yuj=shuruj;yuj='0'scanner。;return0;voidscanner。/掃描分析輸入申inti,j,l,h1,l1,h2,l2,h3,l3,y1,y2,r1,r2;intstep=0;/分析步驟數(shù)chara;/存放正在分析的字符charp1,Q,p2;l=strlen(shuru);/算出輸入用長度for(i=0;i<l;i+)a=shurui;if(Sk='+'|Sk='*'|Sk='A'|Sk='i'|Sk='('|Sk=')'|Sk='
9、#')j=k;elsej=k-1;h1=panyouxian(Sj);/從優(yōu)先關系表中查出Sj和a的優(yōu)先關系if(a='+'|a='*'|a='A'|a='i'|a='('|a=')'|a='#')l1=panyouxian(a);else/如果句子含有不是終結符集合里的其它字符,不合法(cout<<"錯誤!不合法的句子!"<<endl;break;)p1=youxianh1l1;if(p1='>')(loop
10、:Q=Sj;if(Sj-1='+'|Sj-1=*,|Sj-1='A'|Sj-1='i,|Sj-1='('|Sj-1=')'|Sj-1='#')j=j-1;elsej=j-2;h2=panyouxian(Sj);l2=panyouxian(Q);p1=youxianh2l2;if(p1='<')/Sj+1-k歸約為Fk=j+1;shengyuchuan();step+;cout<<left<<"("<<step<<set
11、w(6)<<")"<<setw(10)<<S<<setw(10)<<p1<<setw(10)<<a<<setw(5)<<right<<yu<<setw(15)<<"歸約"<<endl;i-;Sk='F'r1=strlen(S);for(r2=k+1;r2<r2;r2+)Sr2='0'/多個字符歸約,把棧頂后面的舍棄y1=strlen(yu);for(y2=0;y2
12、<y1;y2+)yuy1-y2=yuy1-y2-1;yu0='i'elsegotoloop;elseif(p1='<')/移進如果上一步是不歸約,剩余的字符串減少一個(shengyuchuan();shurul='0'step=step+1;cout<<left<<"("<<step<<setw(6)<<")"<<setw(10)<<S<<setw(10)<<p1<<setw(
13、10)<<a<<setw(5)<<right<<yu<<setw(15)<<"移近"<<endl;k=k+1;Sk=a;else(if(p1='=')(h3=panyouxian(Sj);l3=panyouxian('#');p2=youxianh3l3;if(p2='=')(shengyuchuan();step+;cout<<left<<"("<<step<<setw(6)
14、<<")"<<setw(10)<<S<<setw(10)<<p1<<setw(10)<<a<<setw(5)<<right<<yu<<setw(15)<<"接受"<<endl;cout<<"合法的句子!"<<endl;break;elsek=k+1;Sk=a;elsecout<<"出錯!"<<endl;break;
15、voidshengyuchuan()inti,j;i=strlen(yu);for(j=0;j<i;j+)yuj=yuj+1;yui-1='0'intpanyouxian(charx)intm;switch(x)case'+':m=0;break;case'*':m=1;break;case'A':m=2;break;case'i':m=3;break;case'(':m=4;break;case')':m=5;break;case'#':m=6;break;r
16、eturnm;14輸入的程序界面如圖:H中aMN«tl>-<B.*43MUB»j二蠹".陽=r»A/,UH圖5國|司U芭.ttnMm4-i*I.咄(I上,I!-飛d產一ll:J“HE:l»l-rLal-!iMi.I:c.'i.ri1,IJfe:»-l>.l.IEJI輸入一個正確的句子,結果如下:x一,字符串二士*士*<1+上)#1棧優(yōu)撫關系當前苻號果膾輸入串C1)年<iC2>41<+<3>UF<+C4>(IJ+<iC5>ftF+L<<£+iJ#EGKF+F<菁C7>#r*F*<<QMJ»F+F*<4iC9)UF+F*(i<+nitC1B)ttRMfP(+Cll>ftF*F*<F*<<.12>AF+FMF+i<>C13
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024標準采購合同范本:詳盡條款與格式一
- 2024年藝術教育機構教員合同6篇
- 2024年貨物進出口與代理合同
- 2024年購銷合同模板
- 2024年高端鋁合金門窗安裝服務協(xié)議3篇
- 2024年度金融交易委托錄音核對合同3篇
- 2024年規(guī)范化股東投資協(xié)議范本一
- 2024幼兒園室內裝飾材料采購與施工合同3篇
- 2024房地產買賣與開發(fā)合同
- 2024年納米材料購銷合同3篇
- 料場加工施工方案
- 【淺析人工智能在石油行業(yè)中的應用3400字(論文)】
- 湖北省十堰市竹山縣2023-2024學年三上數(shù)學期末經(jīng)典模擬試題含答案
- 產品試制前準備狀態(tài)檢查報告
- (全)外研版丨九年級下冊英語各模塊作文范文(名校版)
- 煤礦企業(yè)瓦斯防治能力評估管理辦法和基本標準
- 食品供應質量承諾書
- 駕駛員從業(yè)資格證電子版
- vas疼痛評分完整版
- 山東省臨沂市蘭山中學2022-2023學年高二化學上學期期末試題含解析
- 信息與計算科學專業(yè)課程標準
評論
0/150
提交評論