下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、YEUYANG-EN UNIVERSITY 仰恩大3編譯原理課程設(shè)計性實驗報告課程題目:LR(0)分析法姓 名: 鐘繼文 專業(yè)班級:計算機科學(xué)與技術(shù)(1)班指導(dǎo)老師:孫長圣老師學(xué) 號:110920120019報告日期:2015年6月7日編譯原理語法分析實驗報告工實驗內(nèi)容利用C語言編寫一個程序,對字符串進行語法分析,了解掌握實驗的原理及方法, 要求該文法為LR (0)文法。:、實驗?zāi)康腖R(K)分析方法是1965年Knuth提出的,括號中的K表示向右查看輸入串符號的個數(shù)。對于大多數(shù)用無二義性上下文無關(guān)文法描述的語言都可以用相應(yīng)的LR分析器進行識別,而且這種方法還具有分析速度快,能準(zhǔn)確、及時地指出
2、出錯位置。它的主要缺 點是對于一個實用語言文法的分析器的構(gòu)造工作量相當(dāng)大,K愈大構(gòu)造愈復(fù)雜,實現(xiàn)相當(dāng)困難。LR分析法是一種自底向上分析方法。 它的分析過程是一種規(guī)范歸約過程, 規(guī)范歸約 是規(guī)范推導(dǎo)的逆過程。 規(guī)范推導(dǎo)是最右推導(dǎo), 規(guī)范歸約是其逆過程, 則是最左歸約。 LR 分析法的可歸約串是當(dāng)前句型的句柄,即最左直接短語。對于大多數(shù)用無二義性上下文無關(guān)文法描述的語言都可以用相應(yīng)的LR分析器進行識別,而且這種方法還具有分析速度快,能準(zhǔn)確、及時地指出出錯位置。本實驗通過設(shè)計、調(diào)試一個簡單的的LR分析器,實現(xiàn)對詞法分析程序所提供的單詞序列進行語法檢查和結(jié)構(gòu)分析,進一步掌握常用的語法分析方法。、實驗功
3、能通過定義的文法 G, G是一個LR (0)文法,輸入源碼,能夠基本判別出該源碼是否 是正確的。如果是正確的則接收,反之,如果是錯誤的則顯示錯誤。四、實驗步驟1 .類ALGOLF的文法<program> -> <Block><program> -><Compound Statement><Block> -> <Block head> ; <Compound Tail><Block head> ->begin<Block head> -><Block h
4、ead>d<Compound Tail> ->s;end<Compound Tail> ->s;<Compound Tail><Compound Statement> -> begin <Compound Tail>用小寫字母表示終結(jié)符,大寫字母表示非終結(jié)符b:begin d:d s:s e:endP:<Program>B:<Block>S:<Compound Statement>H:<Block head>T:<Compound Tail>則文法為:
5、2 P->B5H->H;d3 P->S6T->se4 B->H;T7T->s;T5 H->bd8S->bT2 .拓廣后為G',增加產(chǎn)生式P'->p1 P'->P2 P->B3 P->S4 B->H;T5 H->bd6 H->H;d7 T->se8 T->s;T9 S->bT3 .項目集規(guī)范族:P -> PP-> BP-> SB-> - H;TH-> bdH-> - H;dT-> seT-> s;TP'->
6、;P P->B P->S B->H - ;TH->b dH->H - ;dT->s - eT->s - ;TB->H; TH->bd H->H; dT->se-T->s; TB->H;T -H->H;d T->s;T S-> bT S->b T S->bT 4 .LR (0)的分析表(s表不移進,r表不歸約)狀A(yù)CTIONGOTO態(tài)bdse;#PBSHT0S1212341acc2r2r2r2r2r2r23r3r3r3r3r3r34S55S7S86r4r4r4r4r4r47r6r6r6r6
7、r6r68S9S109r7r7r7r7r7r710S81111r8r8r8r8r8r812S14S81313r9r9r9r9r9r914r5r5r5r5r5r56.部分代碼界面(為了便于客戶體驗)int menu()int n;printf("=n");printf(" 歡迎使用n");printf("1.顯示文法信息n");printf("2.符號審判定n");printf("3.退出 n");printf("n");printf("=n");print
8、f("請選擇你要執(zhí)行的內(nèi)容:n");scanf("%d",&n);getchar();return n;在main程序中可以直接調(diào)用void main()intt=1,n;char ch;while(t)n=menu();分析過程的實現(xiàn)void ActionTable(int sta, char symb,int col) /statu 用于狀態(tài)棧,sym用于符號棧if(sta = 1 && col = 5)sta1 col5中存放 ACC 即表/示所輸入的源碼是該文法的語法。printf("t 接收 n");
9、IsAccept = 1; /IsAccept為 void 函數(shù),如果/源碼判斷成功,則顯示接收,/將IsAccept賦值為1,方便退出return;/ActionTable是 void 類型的if(actsta.stcol != 0)/存放移進操作/如果進行源碼判斷時,要進行移進操作,則直接將進行相應(yīng)的棧操作printf("t 移進 n");sta+sta_Index = actsta.stcol;symbol+mark_Index = symb;exp_top +;else if(actsta.recol != 0) /存放歸約操作printf("t 歸約 n
10、");Reduce(sta, symb, col); /Reduce 為 void 函數(shù),用來對進行歸標(biāo)準(zhǔn)輸入輸出函數(shù)scnaf,printf關(guān)于字符數(shù)組的函數(shù)定義/else printf("t 錯誤 n");getchar(); / 使用到的頭文件#include<stdio.h> /#include<string.h> /約的項進行相應(yīng)操作,使用棧來進行 處理。從stdio流中讀字符用實驗結(jié)果(截圖)請選擇你要執(zhí)行的內(nèi)容;請選擇你要執(zhí)行的內(nèi)容.rlXX 乂乂竄:乂乂冬玉乂乂多乂算玉算該文法為:0P->BP->SH >H
11、 id®T-se m- S->hT睛選擇你要執(zhí)行的內(nèi)容:;esett步驟汪武源研必原通號盤尾?d; sell10趣鬻析過程一00129121494觸5045804589945e3291符號棧«1) ItJbd ItH ttH; «H;s HH;se ItH; I ttB ItF剩余輸入串川;等7d;sel ;sett ;seltefl$進斗進進約約約收 歸3勺源科露吁程一有短0甘0126012144Ld04ttHR45廿H;剩余輸入串bd;esett d;esett;esenr esetteseltis五、實驗總結(jié)通過這次LR(0)分析器的實驗,實現(xiàn)對詞法分析程序所提供的單詞序列進行語法檢查和結(jié)構(gòu)分析,進一步掌握了 LR語法分析的方法。對于LR (0) 方法有了更深刻的了解,不蛋蛋只是紙上談兵,實驗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人住宅裝潢協(xié)議范本(2024年修訂)版
- 2025年度叉車安全操作培訓(xùn)課程優(yōu)化與推廣合同4篇
- 2025版廠房買賣及土地使用權(quán)變更與售后服務(wù)合同4篇
- 專業(yè)咨詢顧問合作合同(2024年度版)版B版
- 2025年度拆除宴會廳墻體改造項目施工協(xié)議4篇
- 2024陶瓷杯系列新品研發(fā)與市場推廣合作合同3篇
- 2025年度企業(yè)股權(quán)激勵計劃稅務(wù)籌劃與合規(guī)合同3篇
- 2025年新能源電站設(shè)備購銷合同協(xié)議4篇
- 2025年度醫(yī)療中心場地租賃及醫(yī)療設(shè)備租賃補充協(xié)議3篇
- 2025年度醫(yī)療設(shè)備存放租賃合同(2025年度)4篇
- 茶室經(jīng)營方案
- 軍隊文職崗位述職報告
- 小學(xué)數(shù)學(xué)六年級解方程練習(xí)300題及答案
- 電抗器噪聲控制與減振技術(shù)
- 中醫(yī)健康宣教手冊
- 2024年江蘇揚州市高郵市國有企業(yè)招聘筆試參考題庫附帶答案詳解
- 消費醫(yī)療行業(yè)報告
- 品學(xué)課堂新范式
- GB/T 1196-2023重熔用鋁錠
- 運輸行業(yè)員工崗前安全培訓(xùn)
- 公路工程安全風(fēng)險辨識與防控手冊
評論
0/150
提交評論