



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本文格式為word版,下載可任意編輯編譯原理語法分析實驗報告 中北高校軟件學院 實 驗 報 告 專 業(yè) 課程名稱 學 號 姓 名 輔導老師 成果 試驗日期 2021.12.03 試驗時間 10:0011:30 1、試驗名稱 語法分析器的設計與實現(xiàn) 2、試驗目的 把握自上而下語法分析方法、自下而上語法分析方法 3、試驗要求 (1)試驗內容:四選一 設計及實現(xiàn)能夠識別表達式的猜測分析程序。 文法如下: ge:e-e+t|t t-t*f|f f-(e)|i 設計及實現(xiàn)能夠識別表達式的 lr分析程序。 文法如下: ge:e-e+t|t t-t*f|f f-(e)|i 設計及實現(xiàn)能夠識別表達式的算符優(yōu)先
2、分析程序。 文法如下: ge:e-e+t|t t-t*f|f f-pf|p p-(e)|i 設計及實現(xiàn)計算表達式的計算器。 表達式中可包含+、-、*、/、(、)運算符。 (2)試驗要求: 對已給的一個二元式形式表達式,能夠檢查有無語法錯誤。并指定出錯位置。 將表達式的語法樹輸出(或將語法分析過程輸出)。 4、試驗原理 依據(jù)自上而下和自下而上的語法分析思想實現(xiàn)語法分析程序。 5、試驗步驟 (1)依據(jù)文法構造語法分析表。 (2)編寫總控程序實現(xiàn)語法分析。 6、狀態(tài)轉換圖及詞法分析程序 (1)狀態(tài)轉換圖 否 (2)語法分析器源代碼 #includestdio.h #includestring.h c
3、har *action126=s5#,null,null,s4#,null,null, /*action 表*/ null,s6#,null,null,null,acc, ll(1) 文報錯判 斷有結讀入文法開 始 null,r2#,s7#, null,r2#,r2#, null,r4#,r4#, null,r4#,r4#, s5#,null,null, s4#,null,null, null,r6#,r6#, null,r6#,r6#, s5#,null,null, s4#,null,null, s5#,null,null, s4#,null,null, null,s6#,null, nul
4、l,s11#,null, null,r1#,s7#, null,r1#,r1#, null,r3#,r3#, null,r3#,r3#, null,r5#,r5#, null,r5#,r5#; int goto1123=1,2,3, /*qoto 表*/ 0,0,0, 0,0,0, 0,0,0, 8,2,3, 0,0,0, 0,9,3, 0,0,10, 0,0,0, 0,0,0, 0,0,0, 0,0,0; char vt6="i","+","*","(",")","#" /
5、*存放終結符*/ char vn3="e","t","f" /*存放非終結符*/ char*lr7=m-e#,e-e+t#,e-t#,t-t*f#,t-f#,f-(e)#,f-i#; /*存放產生式*/ int a20;/數(shù)組 a 實現(xiàn)狀態(tài)棧 char b20,c20,c1;/數(shù)組 b 實現(xiàn)符號棧,數(shù)組 c 存放輸入的字符串 int top1,top2,top3,top,m,n; int main() int g,h,i,j,k,l,p,y,z,count; char x,copy20,copy120; top1=0;top2=0;t
6、op3=0;top=0; a0=0;y=a0;b0="#" count=0;z=0; /輸入要識別的字符串 printf(請輸入表達式n); do scanf(%c,c1); ctop3=c1; /字符數(shù)組 c10存放輸入的字符串 top3=top3+1;/最終 top3=5 while(c1!="#"); /輸出分析結果 printf(步驟t 狀態(tài)棧tt 符號棧tt 輸入串ttactiontgoton); do y=z;m=0;n=0; /*y,z 指向狀態(tài)棧棧頂*/ g=top;j=0;k=0; x=ctop; /將輸入符號賦給 x count+;
7、printf(%dt,count);/輸出步驟序號 while(m=top1) /*輸出狀態(tài)棧*/ printf(%d,am); m=m+1; printf(tt); while(n=top2) /*輸出符號棧*/ printf(%c,bn); n=n+1; printf(tt); while(g=top3) /*輸出輸入串*/ printf(%c,cg); g=g+1; printf(tt); while(x!=vtjj=5) /獵取當前 x 對應 j 的值 j+; if(j=5x!=vtj)/假如 x 不是終結符則報錯 printf(errorn); return 0; if(action
8、yj=null) printf(errorn); return 0; else strcpy(copy,actionyj); if(copy0="s") /*處理移進*/ z=copy1-"0"/由于狀態(tài)從 0 開頭 top1=top1+1; top2=top2+1; atop1=z;/數(shù)組 a 實現(xiàn)狀態(tài)棧 btop2=x;/數(shù)組 b 實現(xiàn)符號棧 top=top+1;/輸入符號串數(shù)組 c的頂 i=0; while(copyi!="#")/例 s3# 輸出 action printf(%c,copyi) return 0; i+; pr
9、intf(n); if(copy0="r") /*處理歸約*/ i=0; while(copyi!="#")/例 s3# 輸出 action printf(%c,copyi) return 0; i+; h=copy1-"0"/由于狀態(tài)從 0 開頭 strcpy(copy1,lrh); while(copy10!=vnk) /獵取當前 k 值 k+; l=strlen(lrh)-4; top1=top1-l+1; top2=top2-l+1; y=atop1-1; p=goto1yk; atop1=p; btop2=copy10; z
10、=p; printf(t); printf(%dn,p); while(actionyj!=acc); printf(accn); getchar(); 7、測試及結果 確定是否為 ll(1)文法 8、心得 通過本次的試驗,使我真正的了解語法分析器的實現(xiàn)過程,讓我更加深刻領悟語法分析器的實現(xiàn)原理。雖然在本次試驗中遇到了各種各樣的困難和錯誤,但在老師和同學們的關心下我都一一克服了,使得語法分析器能夠正確的識別相應的語法和表達式。 在做試驗的過程中,發(fā)覺自己在編寫程序過程中,總是會忽視各種細節(jié),從而導致常常修改一些很小的低級錯誤才能使程序正常運行,不僅鋪張時間,還影響對其他地方的修改,并且在許多步驟處理上,方法不正確。使結果不能符合要求,深刻體會到了自己在編程方面與別人的差距,在今
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 木材加工企業(yè)的信息化建設與管理考核試卷
- 化工產品批發(fā)商銷售團隊激勵與培訓實踐考核試卷
- 冷凍飲品行業(yè)企業(yè)發(fā)展戰(zhàn)略與實施路徑考核試卷
- 半導體照明器件的振動測試考核試卷
- 家具品牌形象塑造考核試卷
- 機床附件的行業(yè)競爭格局與市場定位考核試卷
- 國際貿易中的社會責任與合規(guī)性考核試卷
- 成人高考物理電磁學綜合應用考核試卷
- 小學生師生互動課件
- 耗材供應合同范本
- 人教部編版六年級下冊道德與法治第二課-《學會寬容-第一課時-寬容讓生活更美好》教學課件
- 醫(yī)患溝通技巧培訓講義
- 丁苯橡膠乳液聚合生產工藝課件
- -抗腫瘤藥物的心臟毒性及防治新版課件
- 第1章全科醫(yī)學概述(人衛(wèi)第五版全科醫(yī)學概論)課件
- 拖拉機培訓(基礎和通用知識)課件
- 對核武器和核事故的防護
- 中國古代經濟史講稿
- 怎樣做好一名拉長
- 故障檢測報告表
- 基本養(yǎng)老保險個人權益記錄范文單
評論
0/150
提交評論