




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、YEUYANG-EN UNIVERSITY 仰恩大3編譯原理課程設(shè)計性實驗報告課程題目:LR(0)分析法姓 名: 鐘繼文 專業(yè)班級:計算機科學與技術(shù)(1)班指導老師:孫長圣老師學 號:110920120019報告日期:2015年6月7日編譯原理語法分析實驗報告工實驗內(nèi)容利用C語言編寫一個程序,對字符串進行語法分析,了解掌握實驗的原理及方法, 要求該文法為LR (0)文法。:、實驗?zāi)康腖R(K)分析方法是1965年Knuth提出的,括號中的K表示向右查看輸入串符號的個數(shù)。對于大多數(shù)用無二義性上下文無關(guān)文法描述的語言都可以用相應(yīng)的LR分析器進行識別,而且這種方法還具有分析速度快,能準確、及時地指出
2、出錯位置。它的主要缺 點是對于一個實用語言文法的分析器的構(gòu)造工作量相當大,K愈大構(gòu)造愈復(fù)雜,實現(xiàn)相當困難。LR分析法是一種自底向上分析方法。 它的分析過程是一種規(guī)范歸約過程, 規(guī)范歸約 是規(guī)范推導的逆過程。 規(guī)范推導是最右推導, 規(guī)范歸約是其逆過程, 則是最左歸約。 LR 分析法的可歸約串是當前句型的句柄,即最左直接短語。對于大多數(shù)用無二義性上下文無關(guān)文法描述的語言都可以用相應(yīng)的LR分析器進行識別,而且這種方法還具有分析速度快,能準確、及時地指出出錯位置。本實驗通過設(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ù),用來對進行歸標準輸入輸出函數(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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 30544.3-2025納米科技術(shù)語第3部分:碳納米物體
- 行政法學核心概念與試題及答案解析
- 石墨烯火災(zāi)應(yīng)急預(yù)案(3篇)
- 高考作文考試??碱}目及答案總結(jié)
- 高考作文歷練成長的試題與答案
- 高考作文勇氣與擔當?shù)脑囶}及答案
- 行政法學中多元化的實踐方法探討試題及答案
- 消火災(zāi)應(yīng)急預(yù)案超聲科(3篇)
- 別墅小區(qū)火災(zāi)應(yīng)急預(yù)案(3篇)
- 2025年軟件設(shè)計師試題及答案重要提醒
- 2025年小升初語文第一次全真模擬試卷(1)(統(tǒng)編版+含答案解析)
- 廠區(qū)保安培訓試題及答案
- 2025年消防設(shè)施操作員(中級)職業(yè)技能鑒定參考試題庫(500題含答案)
- 購銷庫爾勒香梨合同協(xié)議
- 2025年山東交通技師學院招聘筆試試題(附答案)
- (三模)豫西北教研聯(lián)盟 (平許洛濟)2024-2025學年高三第三次質(zhì)量檢測英語試卷(含答案)
- 2025年海淀高三二模語文試題及答案
- 2025年智能型低壓電器、智能型低壓開關(guān)柜項目可行性研究方案
- 三方合伙開店協(xié)議合同
- 《緊急多發(fā)傷的臨床救治》課件
- 2025年危險品水路運輸從業(yè)資格考試復(fù)習題庫-上(單選題)
評論
0/150
提交評論