![編譯原理上機(jī)報(bào)告_第1頁](http://file4.renrendoc.com/view/1a50d58e0c5b0fabaa3ab3c812bcd259/1a50d58e0c5b0fabaa3ab3c812bcd2591.gif)
![編譯原理上機(jī)報(bào)告_第2頁](http://file4.renrendoc.com/view/1a50d58e0c5b0fabaa3ab3c812bcd259/1a50d58e0c5b0fabaa3ab3c812bcd2592.gif)
![編譯原理上機(jī)報(bào)告_第3頁](http://file4.renrendoc.com/view/1a50d58e0c5b0fabaa3ab3c812bcd259/1a50d58e0c5b0fabaa3ab3c812bcd2593.gif)
![編譯原理上機(jī)報(bào)告_第4頁](http://file4.renrendoc.com/view/1a50d58e0c5b0fabaa3ab3c812bcd259/1a50d58e0c5b0fabaa3ab3c812bcd2594.gif)
![編譯原理上機(jī)報(bào)告_第5頁](http://file4.renrendoc.com/view/1a50d58e0c5b0fabaa3ab3c812bcd259/1a50d58e0c5b0fabaa3ab3c812bcd2595.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 編譯原理課程實(shí)驗(yàn)指導(dǎo)書目錄TOC o 1-5 h z HYPERLINK l bookmark2 序言2 HYPERLINK l bookmark4 實(shí)驗(yàn)一設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)單語言的詞法分析器3 HYPERLINK l bookmark60 實(shí)驗(yàn)二設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)單語言的語法分析器17序言編譯原理實(shí)驗(yàn)環(huán)節(jié),主要通過對(duì)編譯器的兩個(gè)重要模塊-詞法和語法模塊編程調(diào)試實(shí)現(xiàn),使學(xué)生能應(yīng)用編譯原理的基本理論和方法,學(xué)會(huì)用高級(jí)程序設(shè)計(jì)語言設(shè)計(jì)詞法分析器和語法分析器,加深對(duì)編譯原理理論的分析理解,鞏固所學(xué)知識(shí),培養(yǎng)和提高學(xué)生的動(dòng)手實(shí)踐能力。實(shí)驗(yàn)一設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)單語言的詞法分析器1、實(shí)驗(yàn)?zāi)康耐ㄟ^該實(shí)驗(yàn),熟練應(yīng)用編譯原理關(guān)于詞法
2、分析的基本理論和方法;學(xué)會(huì)用高級(jí)程序設(shè)計(jì)語言設(shè)計(jì)一個(gè)詞法分析器;加深對(duì)編譯原理理論的分析理解,提高實(shí)際操作和解決具體問題的能力。2、實(shí)驗(yàn)條件計(jì)算機(jī)上安裝編譯處理軟件。3、實(shí)驗(yàn)內(nèi)容及要求對(duì)下述單詞表定義的語言設(shè)計(jì)編制一個(gè)詞法分析器。單詞符號(hào)及種別表和詞法分析器功能及基本要求如下:(1)單詞符號(hào)及種別表單詞符號(hào)種別編碼單詞值main1int2float3double4char5if6else7do8while9l(lld)*10內(nèi)部字符串(+l-l)dd*(.dd*1)(e(+l-l)dd*l)20二進(jìn)制數(shù)值表示21+2223*24/25(26)272829,30(2)詞法分析器功能及基本要求處理
3、用戶提交的符合上述詞法的源代碼序列,進(jìn)行詞法分析,并輸出單詞二元組。4、主要參考步驟(1畫)出識(shí)別上述語言單詞的狀態(tài)轉(zhuǎn)換圖用語言編寫詞法分析程序(應(yīng)考慮能被語法分析程序調(diào)用)預(yù)處理,去除注釋、多余空格、Tab字符、回車換行符等(4設(shè))計(jì)若干用例,上機(jī)測(cè)試并通過所設(shè)計(jì)實(shí)現(xiàn)的詞法分析器+-123.456e-127*+45.99e+200+abc+-cnt+49(+123.456+-456.789e-120)*m2+(a+456)*-c123+4+1.4a+-149+49.7e+127+m123x=a+1.27e+18-20+-124.987e+127+-xyzbeginif(x=-1.27e-18
4、)xyz=(x1+y1)*-124.987e+127-20+-124.e+111-137+569.246e+(123+ivar);x=1;if(x1)y=1234;x=(123+abc);(本例應(yīng)有出錯(cuò)信息)5、思考數(shù)字的正負(fù)號(hào)與運(yùn)算符加減如何處理,識(shí)別數(shù)字的怎樣和運(yùn)算符加減等融合在一起,進(jìn)而指導(dǎo)詞法分析器的程序編寫。6、實(shí)驗(yàn)報(bào)告提交格式(1)總體設(shè)計(jì)思想先定義一個(gè)結(jié)構(gòu)體用于存放單詞的種別編碼和單詞符號(hào),定義一個(gè)輸入緩沖區(qū)字符數(shù)組,一個(gè)單詞緩沖區(qū)字符數(shù)組,定義scaner()函數(shù),通過結(jié)構(gòu)體定義一個(gè)myword對(duì)象,運(yùn)用m_getch()函數(shù)讀取輸入的一個(gè)字符,并判斷是否為數(shù)字,字母,或符號(hào),
5、通過concat()函數(shù)將數(shù)字或字母的整體進(jìn)行連接,每識(shí)別一個(gè)單詞就返回給WORD結(jié)構(gòu)體,并在主函數(shù)中輸出單詞的種別編碼和符號(hào),直到所有的單詞全部識(shí)別完。(2)詳細(xì)算法設(shè)計(jì)通過函數(shù)讀入一個(gè)字符,然后判斷是否為字母,如果是字母,就繼續(xù)讀入,判斷下一個(gè)字符是否為字母或數(shù)字,如果是,就用連接到一起,并返回種別編碼10和連接后的單詞;如果字母單詞與關(guān)鍵字字表中的相同,就返回關(guān)鍵字和對(duì)應(yīng)的編碼。判斷讀入的字符是否為數(shù)字,如果是就連接并存入數(shù)組,繼續(xù)判斷讀入的字符是否是或,如果是繼續(xù)連接,并判斷后面是否為數(shù)字,如果是,繼續(xù)連接,并判斷是否讀入了字符,如果是,繼續(xù)連接,并將后面的+,-,和數(shù)字繼續(xù)連接,并存
6、入結(jié)構(gòu)體,返回編碼20和數(shù)字單詞,如果.后面不是數(shù)字則輸出錯(cuò)誤;如果在讀入一段數(shù)字后字符是,連接后將后面的+,-,和數(shù)字繼續(xù)連接,并存入結(jié)構(gòu)體,返回編碼20和數(shù)字單詞。出錯(cuò)錯(cuò)誤3通.過對(duì)輸入不同的符號(hào)進(jìn)行判斷,并返回對(duì)應(yīng)的種別編碼和符號(hào)單詞,如果輸入的是“/*”-則判-定*為/注解,如果輸入的是“/*”或“/*-”-則-判*定為輸入錯(cuò)誤并返回-1;如果輸入的是!而不是“!=”也判定為錯(cuò)誤。注解輸入錯(cuò)誤錯(cuò)誤是若關(guān)鍵字運(yùn)算轉(zhuǎn).*他哥號(hào)界符等符號(hào)syn為對(duì)應(yīng)關(guān)健字的單詞種別碼syn-10對(duì)不同符號(hào)給出相應(yīng)的$yn值拼我(4函)數(shù)相關(guān)說明主函數(shù):從緩沖區(qū)讀一個(gè)字符函數(shù)去掉空白符號(hào)函數(shù):拼接單詞函數(shù):判
7、斷是否為字母函數(shù):判斷是否為數(shù)字函數(shù):檢索是否為關(guān)鍵字:回退一個(gè)字符函數(shù):(5輸)入與輸出(包括出錯(cuò)處理)輸入:所給文法的源程序字符串。輸出:二元組構(gòu)成的序列。(或)其中:為單詞種別碼;為存放的單詞自身字符串;為整型常數(shù)。出錯(cuò)處理:EnterYourwords(endwith:124.#Yourwords:124.出錯(cuò)9錯(cuò)誤)press#toexit:PressanykeytocontinueEnterYourwords(endwith#):/*88888ttYourwords:88888輸入曾誤:(-1,錯(cuò)誤)press#toexit:PressanykeytocontinuepnterYo
8、urwordstendwith:7*8888/#pfourwords:/+B888*/9,注解)press#toexit:Ptsesanykeytocontinue(6程)序運(yùn)行結(jié)果(屏幕截圖)1.+-123.456e-127*+45.99e+200+abc+-cnt+49EnterYourwords(endwithfl):+-123.456e-127+45.99e+200+abc+-cnt+49flYourwords:+-123.456e-127+45.99e+200-i-+abc+-cnt+49(22,+)(22,+)(22,+)(20,-123.456e-127)(24,*)(20,+4
9、5.99e+200)(22,+)(22,+)(10,abc)(22,+)(23,-)(10,ent)(22,+)(20,+49)press#toexit:Pressanykeytocontinue2.(+123.456+-456.789e-120)*m2+(a+456)*-c123EnterYourwords(endwithfl):(+123.456+-456.789e-120)*m2+(a+456):+:-cl23fl?urwords:(+123.456+-456.789e-120)*m2+Ca+456)*-c123(26,0(20,+123.456)(22,+)(20,-456.789e-
10、120)(27,)(24產(chǎn))(10,m2)(22,+)(26,0(10,a)(22,+)(20,+456)(27,)(24產(chǎn))(23,-)(10,cl23),ress#toexit:Pressanykeytocontinue3.+4+1.4EnterYourwords(endwith#):+4+L4#Yourwords:+4+1.4(22,+)(20,-+4)(20,+1.4)press#toexit:Pressanykeytocontinue.4.a+-149+49.7e+127+m123EnterYourwords(endwithfl):a-i149+49.7e+127+nil23Your
11、words:a+-149+49.7e+127-Hnl23(10,a)(22,十)(20,-149),(20,+49.7e+127)晨22,十)(10,ml23)pressqtoexit:Pressanykeytocontinue5.x=a+1.27e+18EnterYcurwords(.endwith:x-a+l.27e+lE#Yourwords:z=a+l.27e+18(10,x),二)(103a)(22,+)(20,+1.27e+18:ipress#toexit:Pressanykey二口continue-6.-20+-124.987e+127+-xyzbeginif(x=-1.27e-1
12、8)xyz=(x1+y1)*-124.987e+127EnterYourwords(endwith:-20+-124.987e+127+-xyzbeginif(k=-1.27e-18)意yz=Gl號(hào)D*-124.987e+127#fourwords:20+-124.987e+127+-xyzbeginif(k=-1.27e-18)意yz=Gl號(hào)D*-124.987e+127(23,-)(20,-20)(22,+)(20,-124.987e+127)(22,+)(23,-)(10,xyz)(10,begin)6if)(26,0(10,x)(弱=)(20,-1.27e-18)(27,1)(10,x
13、yz)(21,=)(26,0(10,xl)(22,+)(10,yl)(27,1)產(chǎn))(20,-124.987e+127)press#toexit:Pressanykeytocontinue7,-20+-124.e+111-137+569.246e+(123+ivar);x=1;if(x1)y=1234;x=(123+abc);()EnterYourwords(endwith:一一20+-124.e+lll-137+569.246e+(123+ivar)x=l;ifxl)y=1234;(123+abc);#Yourwords:20+-L24.e+lll-137+569.246e+(123+iva
14、r);x=l;ifxl)y=1234;x=(123+abc);(23,-)(20,-20)(22,+)出錯(cuò)錯(cuò)誤)(10,e)(20,+111)(20,-137)(22,+)(20,+569.246e+)(26,0|(20,123)(22,+)(10,ivar)(27,)(31,1)(10,x)(21,=)(20,1)(31,1)(6,if)(26,0(10,x)(32,(20,1)(27n)(10ny),二)1(20,1234)(10,x)(21,=)(26,()(20n123)(22n+)(10,abc)(27,)press*toexit:Pressanykeytocontinue(7詞)法
15、分析器使用說明運(yùn)行程序,提示“輸入要分析的語句或詞語,輸入完后再末尾加上“#”,回車,在屏幕上顯示剛輸入的詞語或語句,然后程序?qū)υ~語逐個(gè)分析,返回并顯示每個(gè)詞語的單詞符號(hào)和種別編碼,分析完畢后,輸入“#”結(jié)束程序。心得與體會(huì)本次的編譯原理上機(jī)實(shí)驗(yàn),讓我對(duì)語言有了新的認(rèn)識(shí),運(yùn)用語言來編寫程序,也能運(yùn)用語言來對(duì)每個(gè)文法中的單詞進(jìn)行分析,并輸出每個(gè)單詞的種別編碼,通過詞法分析器的設(shè)計(jì),對(duì)每個(gè)單詞的字符讀入,連接和存取有了新的方法來實(shí)現(xiàn),通過對(duì)全局變量指針的修改來實(shí)現(xiàn)對(duì)不同位置的字符進(jìn)行操作,也發(fā)現(xiàn)了自己C語言知識(shí)掌握的不全,在用多個(gè)if和elseif語句進(jìn)行判別時(shí),括號(hào)的錯(cuò)誤編寫導(dǎo)致判斷的錯(cuò)誤,花了
16、大量的時(shí)間來檢查和修改,在多個(gè)地方需要進(jìn)行相同判別時(shí),是直接復(fù)制,導(dǎo)致代碼的多和繁瑣,也讓程序運(yùn)行效率變低。雖然不容易完成,但還是慢慢學(xué)會(huì)了解決,通過自己完成問題。源程序清單實(shí)驗(yàn)二設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)單語言的語法分析器通過該實(shí)驗(yàn),熟練應(yīng)用編譯原理關(guān)于語法分析的基本理論和方法;學(xué)會(huì)用高級(jí)程序設(shè)計(jì)語言設(shè)計(jì)一個(gè)語法分析器;加深對(duì)編譯原理理論的分析理解,提高實(shí)際操作和解決具體問題的能力。2、實(shí)驗(yàn)條件計(jì)算機(jī)上安裝編譯處理軟件。3、實(shí)驗(yàn)內(nèi)容及要求對(duì)下述單詞表與語法定義的語言設(shè)計(jì)編制一個(gè)語法分析器。單詞符號(hào)及種別表、語法及語法分析器功能、基本要求如下:(1)單詞符號(hào)及種別表單詞符號(hào)種別編碼單詞值main1int2fl
17、oat3double4char5if6else7do8while9l(lld)*10內(nèi)部字符串(+l-l)dd*(.dd*1)(e(+l-l)dd*l)20二進(jìn)制數(shù)值表示21+2223*24/25(26)272829,30;3132=3334=3536!=37#I0I(2)語法結(jié)構(gòu)定義表達(dá)式:=項(xiàng)+項(xiàng)|-項(xiàng)項(xiàng):=因子*因子|/因子因子:=IDI1(表達(dá)式)num:=(+l-l)數(shù)字?jǐn)?shù)字*(.數(shù)字?jǐn)?shù)字*I)(e(+l-l)數(shù)字?jǐn)?shù)字*后)ID:=字母(字母I數(shù)字)*字母:=alblcIzIAIBICIZ數(shù)字:=0I1I2I9(3)語法分析器功能及基本要求處理用戶提交的符合上述文法的源代碼序列,進(jìn)行語法分析,并給出語法是否正確的結(jié)論。4、主要參考步驟在實(shí)驗(yàn)一的基礎(chǔ)上,將詞法分析器改造成為可以被語法分析器調(diào)用的形式,相
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度家庭裝修防水防漏工程承包合同
- 2025年度供應(yīng)鏈金融合同保理與信用證綜合解決方案
- 2025年度家具行業(yè)培訓(xùn)課程開發(fā)合同
- 2025年度屋頂綠化生態(tài)修復(fù)項(xiàng)目監(jiān)理合同
- 2025年度建筑節(jié)能檢測(cè)與認(rèn)證合同
- 2025年度電商平臺(tái)廣告合作服務(wù)合同范本
- 2025年度架工班組內(nèi)部承包綜合服務(wù)合同
- 2025年度科技創(chuàng)新廠長(zhǎng)聘用合同
- 2025年度電動(dòng)汽車充電設(shè)施建設(shè)合同
- 2025年度建筑工程施工合同糾紛處理協(xié)議
- 武漢2025年湖北武漢理工大學(xué)管理人員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 使用錯(cuò)誤評(píng)估報(bào)告(可用性工程)模版
- 《發(fā)展?jié)h語(第二版)中級(jí)綜合(Ⅰ)》第7課+課件
- 第四章《數(shù)列》復(fù)習(xí)小結(jié)示范公開課教學(xué)PPT課件【高中數(shù)學(xué)人教A版】
- GB/T 8944.1-2008紙漿成批銷售質(zhì)量的測(cè)定第1部分:漿板漿包及漿塊(急驟干燥漿)漿包
- 蘇教版(蘇少版)九年級(jí)美術(shù)下冊(cè)全冊(cè)課件
- 2022年江蘇省鹽城市中考英語試題及參考答案
- 中國(guó)文化簡(jiǎn)介英文版(ChineseCultureintroduction)課件
- 文化差異與跨文化交際課件(完整版)
- 工程經(jīng)濟(jì)學(xué)完整版課件全套ppt教程
- 鼻空腸營(yíng)養(yǎng)的護(hù)理及注意事項(xiàng)ppt
評(píng)論
0/150
提交評(píng)論