




已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
編譯原理 課程設(shè)計(jì)性實(shí)驗(yàn)報(bào)告課程題目: LR(0)分析法姓 名: 鐘繼文 專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)(1)班指導(dǎo)老師: 孫長圣老師學(xué) 號(hào): 110920120019報(bào)告日期: 2015年6月7日編譯原理語法分析實(shí)驗(yàn)報(bào)告1、 實(shí)驗(yàn)內(nèi)容 利用C語言編寫一個(gè)程序,對(duì)字符串進(jìn)行語法分析,了解掌握實(shí)驗(yàn)的原理及方法,要求該文法為LR(0)文法。2、 實(shí)驗(yàn)?zāi)康?LR(K)分析方法是1965年Knuth提出的,括號(hào)中的K表示向右查看輸入串符號(hào)的個(gè)數(shù)。對(duì)于大多數(shù)用無二義性上下文無關(guān)文法描述的語言都可以用相應(yīng)的LR分析器進(jìn)行識(shí)別,而且這種方法還具有分析速度快,能準(zhǔn)確、及時(shí)地指出出錯(cuò)位置。它的主要缺點(diǎn)是對(duì)于一個(gè)實(shí)用語言文法的分析器的構(gòu)造工作量相當(dāng)大,K愈大構(gòu)造愈復(fù)雜,實(shí)現(xiàn)相當(dāng)困難。LR分析法是一種自底向上分析方法。它的分析過程是一種規(guī)范歸約過程,規(guī)范歸約是規(guī)范推導(dǎo)的逆過程。規(guī)范推導(dǎo)是最右推導(dǎo),規(guī)范歸約是其逆過程,則是最左歸約。 LR分析法的可歸約串是當(dāng)前句型的句柄,即最左直接短語。對(duì)于大多數(shù)用無二義性上下文無關(guān)文法描述的語言都可以用相應(yīng)的LR分析器進(jìn)行識(shí)別,而且這種方法還具有分析速度快,能準(zhǔn)確、及時(shí)地指出出錯(cuò)位置。本實(shí)驗(yàn)通過設(shè)計(jì)、調(diào)試一個(gè)簡(jiǎn)單的的LR分析器,實(shí)現(xiàn)對(duì)詞法分析程序所提供的單詞序列進(jìn)行語法檢查和結(jié)構(gòu)分析,進(jìn)一步掌握常用的語法分析方法。3、 實(shí)驗(yàn)功能 通過定義的文法G,G是一個(gè)LR(0)文法,輸入源碼,能夠基本判別出該源碼是否是正確的。如果是正確的則接收,反之,如果是錯(cuò)誤的則顯示錯(cuò)誤。 4、 實(shí)驗(yàn)步驟1 類ALGOLF的文法 - - - ; -begin -;d -s;end -s; - begin 用小寫字母表示終結(jié)符,大寫字母表示非終結(jié)符b:begin d:d s:s e:endP:B:S:H:T:則文法為:1 P-B 5 H-H;d 2 P-S 6 T-se 3 B-H;T 7 T-s;T 4 H-bd 8 S-bT2 拓廣后為G,增加產(chǎn)生式 P-p1 P-P 2 P-B3 P-S4 B-H;T5 H-bd6 H-H;d7 T-se8 T-s;T9 S-bT3.項(xiàng)目集規(guī)范族: P-P P-P P-B P-B P-S P-S B-H;T B-H;T B-H;T B-H;T H-bd H-bd H-bd H-H;d H-H;d H-H;d H-H;d T-se T-se T-se T-s;T T-s;T T-s;T T-s;T S-bT S-bT S-bT 4.LR(0)的分析表(s表示移進(jìn),r表示歸約)狀態(tài)ACTIONGOTObdse;#PBSHT0S1212341acc2r2r2r2r2r2r23r3r3r3r3r3r34S55S7S86r4r4r4r4r4r47r6r6r6r6r6r68S9S109r7r7r7r7r7r710S81111r8r8r8r8r8r812S14S81313r9r9r9r9r9r914r5r5r5r5r5r56.部分代碼n 界面(為了便于客戶體驗(yàn)) int menu() int n; printf(=n); printf(-歡迎使用-n); printf(1.顯示文法信息n); printf(2.符號(hào)串判定n); printf(3.退出n); printf(-n); printf(=n); printf(請(qǐng)選擇你要執(zhí)行的內(nèi)容:n); scanf(%d,&n); getchar(); return n;在main程序中可以直接調(diào)用。void main() int t=1,n;char ch; while(t) n=menu(); n 分析過程的實(shí)現(xiàn)void ActionTable(int sta, char symb,int col) /statu用于狀態(tài)棧,sym用于符號(hào)棧 if(sta = 1 & col = 5) /sta1 col5中存放ACC,即表 /示所輸入的源碼是該文法的語法。 printf(t接收n); IsAccept = 1; /IsAccept為void函數(shù),如果 /源碼判斷成功,則顯示接收, /將IsAccept賦值為1,方便退出。 return; /ActionTable是void類型的 if(actsta.stcol != 0) /存放移進(jìn)操作 /如果進(jìn)行源碼判斷時(shí),要進(jìn)行移進(jìn)操作,則直接將進(jìn)行相應(yīng)的棧操作 printf(t移進(jìn)n); sta+sta_Index = actsta.stcol; symbol+mark_Index = symb; exp_top +; else if(actsta.recol != 0) /存放歸約操作 printf(t歸約n); Reduce(sta, symb, col); /Reduce為void函數(shù),用來對(duì)進(jìn)行歸 /約的項(xiàng)進(jìn)行相應(yīng)操作,使用棧來進(jìn)行 /處理。 else printf(t錯(cuò)誤n); getchar(); /從stdio流中讀字符用 n 使用到的頭文件#include /標(biāo)準(zhǔn)輸入輸出函數(shù) scnaf,printf#include /關(guān)于字符數(shù)組的函數(shù)定義 n 實(shí)驗(yàn)結(jié)果(截圖)5、 實(shí)驗(yàn)總結(jié) 通過這次LR(0)分析器的實(shí)驗(yàn),實(shí)現(xiàn)對(duì)詞法分析程序所提供的單詞序列進(jìn)行語法檢查和結(jié)構(gòu)分析,進(jìn)一步掌握了LR語法分析的方法。對(duì)于LR(0)方法有了更深刻的了解,不蛋蛋只是紙上談兵,實(shí)驗(yàn)的完成,也就是實(shí)踐的過程。雖然在這個(gè)實(shí)踐的過程中遇到了許多的困難,但是在老師和同學(xué)的幫助下,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西中醫(yī)藥大學(xué)《土木工程施工組織設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 六安職業(yè)技術(shù)學(xué)院《建筑構(gòu)造及施工圖識(shí)讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春大學(xué)旅游學(xué)院《計(jì)算方法及軟件應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 云南農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《巖漿巖巖石學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新能源汽車市場(chǎng)突圍策略
- 愛的教育第二卷核心解析
- 學(xué)生家長課件制作指南
- 2024年電調(diào)收音機(jī)項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- (高清版)DG∕TJ 08-2111-2012 灘涂促淤圈圍造地工程設(shè)計(jì)規(guī)范
- 別墅前期裝修設(shè)計(jì)
- 青海電廠漂珠安全要求
- 2022-2023學(xué)年天津市重點(diǎn)中學(xué)高三(下)第五次月考物理試卷-普通用卷
- 第一單元大單元教學(xué)設(shè)計(jì) 統(tǒng)編版高中語文選擇性必修中冊(cè)
- 應(yīng)用PDCA管理工具提高病案歸檔率
- 幼兒園課題-基于商城游戲室的大班幼兒分享交流的策略研究
- Unit6知識(shí)點(diǎn)講解(帶練習(xí))課件-人教版八年級(jí)英語下冊(cè)
- 新外研版三年級(jí)英語下冊(cè)期中測(cè)試卷(匯編)
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- GB/T 23703.1-2009知識(shí)管理第1部分:框架
- 1-如何做好今年中考語文的復(fù)習(xí)備考
- 12摻合料試驗(yàn)記錄(礦渣粉)帶數(shù)據(jù)
評(píng)論
0/150
提交評(píng)論