![編譯原理自動(dòng)機(jī)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d1.gif)
![編譯原理自動(dòng)機(jī)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d2.gif)
![編譯原理自動(dòng)機(jī)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d3.gif)
![編譯原理自動(dòng)機(jī)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d4.gif)
![編譯原理自動(dòng)機(jī)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d/456e8ef5-46e5-4d99-bc7e-6d43aeb1e95d5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院實(shí) 驗(yàn) 報(bào) 告 課程名稱: 編譯原理 實(shí)驗(yàn)名稱: 語(yǔ)法制導(dǎo)把表達(dá)式翻譯成逆波蘭式 實(shí)驗(yàn)類型: 驗(yàn)證性 綜合性 設(shè)計(jì)性 實(shí)驗(yàn)室名稱: 電力大樓九樓東機(jī)房 班 級(jí): 計(jì)13-1 學(xué)號(hào): 201320201045 姓名: 徐銘貝 組別: 同組人: 成績(jī): 實(shí)驗(yàn)日期: 2016-6 預(yù)習(xí)報(bào)告成績(jī): 指導(dǎo)教師審核(簽名): 年 月 日預(yù)習(xí)報(bào)告一)實(shí)驗(yàn)?zāi)康?無(wú)符號(hào)數(shù)的有窮自動(dòng)機(jī)的實(shí)現(xiàn)目的是使學(xué)生掌握文法的形式描述,窮自動(dòng)機(jī)的概念。將文法轉(zhuǎn)換成有窮自動(dòng)機(jī)的方法,理解出錯(cuò)處理程序思想,如何用狀態(tài)矩陣實(shí)現(xiàn)一個(gè)窮自動(dòng)機(jī)的機(jī)內(nèi)表示。(二)實(shí)驗(yàn)內(nèi)容1無(wú)符號(hào)數(shù)的BNF描述(0)<無(wú)符號(hào)數(shù)
2、> à d <余留無(wú)符號(hào)數(shù)> | . <十進(jìn)制小數(shù)> | e <指數(shù)部分> (1)<余留無(wú)符號(hào)數(shù)>àd <余留無(wú)符號(hào)數(shù)> | . <十進(jìn)制小數(shù)> | e <指數(shù)部分>|(2)<十進(jìn)制小數(shù)> à d <余留十進(jìn)制小數(shù)>(3)<余留十進(jìn)制小數(shù)>à e <指數(shù)部分> | d <余留十進(jìn)制小數(shù)> | (4)<指數(shù)部分> à d <余留整指數(shù)> | + <整指數(shù)> | -
3、 <整指數(shù)>(5)<整指數(shù)> à d <余留整指數(shù)>(6)<余留整指數(shù)> à d <余留整指數(shù)> | 2將G<無(wú)符號(hào)數(shù)>文法轉(zhuǎn)換成有窮自動(dòng)機(jī)。3構(gòu)造狀態(tài)矩陣;將有窮自動(dòng)機(jī)的狀S1 S2 Sn及輸入的字a1 a2 am 構(gòu)成一個(gè)n*m的矩陣。4用狀態(tài)矩陣設(shè)計(jì)出一個(gè)詞法分析程序。5掃描無(wú)符號(hào)數(shù),根據(jù)文法給出無(wú)符號(hào)數(shù)出錯(cuò)的位置。 (三)實(shí)驗(yàn)要求1.學(xué)生課前要認(rèn)真閱讀實(shí)驗(yàn)指導(dǎo),理解實(shí)驗(yàn)內(nèi)容與相關(guān)理論知識(shí)的關(guān)系,并完成預(yù)習(xí)報(bào)告2用C語(yǔ)言或其它高級(jí)語(yǔ)言編寫(xiě)程序3寫(xiě)出實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)報(bào)告成績(jī): 指導(dǎo)教師審核(簽名): 年
4、 月 日實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一 無(wú)符號(hào)數(shù)的有窮自動(dòng)機(jī)的實(shí)現(xiàn)一、目的通過(guò)上機(jī)實(shí)習(xí),熟悉詞法分析程序所用的工具自動(dòng)機(jī),進(jìn)一步理解自動(dòng)機(jī)理論。掌握文法轉(zhuǎn)換成自動(dòng)機(jī)的技術(shù)及有窮自動(dòng)機(jī)實(shí)現(xiàn)的方法。二、 題目無(wú)符號(hào)數(shù)的有窮自動(dòng)機(jī)的實(shí)現(xiàn)三、要求及提示1、無(wú)符號(hào)數(shù)的BNF描述如下:0<無(wú)符號(hào)數(shù)> à d <余留無(wú)符號(hào)數(shù)> | . <十進(jìn)制小數(shù)> | e <指數(shù)部分> 1<余留無(wú)符號(hào)數(shù)> à d <余留無(wú)符號(hào)數(shù)> | . <十進(jìn)制小數(shù)> | e <指數(shù)部分> | 2<十進(jìn)制小數(shù)> à
5、 d <余留十進(jìn)制小數(shù)>3<余留十進(jìn)制小數(shù)>à e <指數(shù)部分> | d <余留十進(jìn)制小數(shù)> | 4<指數(shù)部分> à d <余留整指數(shù)> | + <整指數(shù)> | - <整指數(shù)>5<整指數(shù)> à d <余留整指數(shù)>6<余留整指數(shù)> à d <余留整指數(shù)> | 2、將G<無(wú)符號(hào)數(shù)>文法轉(zhuǎn)換成有窮自動(dòng)機(jī)。3、構(gòu)造狀態(tài)矩陣;將有窮自動(dòng)機(jī)的狀S1 S2 Sn及輸入的字a1 a2 am 構(gòu)成一個(gè)n*m的矩陣。1、
6、 狀態(tài)矩陣設(shè)計(jì)出一個(gè)詞法分析程序識(shí)別無(wú)符號(hào)數(shù)。2、 掃描無(wú)符號(hào)數(shù),根據(jù)文法給出無(wú)符號(hào)數(shù)出錯(cuò)的位置。3、 工具:C語(yǔ)言或其它高級(jí)語(yǔ)言4、 實(shí)踐時(shí)間:8學(xué)時(shí)四、程序清單#include<stdio.h>#include<string.h>main() char wfh50;/*定義數(shù)組大小為50 用于存放要判斷的無(wú)符號(hào)數(shù)*/ int i,zf;/*定義變量*/ int c=0,z1=0,z2=0,z=0; char ch1,ch2; int index;/出錯(cuò)位置 int point;/小數(shù)點(diǎn)的個(gè)數(shù)標(biāo)志while(1)printf("Please Input Nu
7、mber:"); /*輸入要判斷的無(wú)符號(hào)數(shù)*/ scanf("%s",wfh); strcat(wfh,"$"); /*自動(dòng)在輸入的串末尾加入$結(jié)束符*/ i=0; zf=0; /*初始時(shí)令zf=0,使得如果輸入全不符合時(shí)退出*/ while(wfhi!='$') /*條件:輸入不為結(jié)束符時(shí)執(zhí)行判斷*/ ch1=wfhi; /*將第一個(gè)字符送入變量ch1*/ ch2=wfhi+1; /*將次輸入的字符送入變量ch2*/ if(ch1>='0' && ch1<='9')
8、/*當(dāng)前字是否0-9的數(shù)字*/ if(ch2>='0' && ch2<='9') | ch2='.' | ch2='e'|ch2='$') /*如果是數(shù)字,則判斷下一個(gè)字符是否是"0-9",".","E"."$"*/ zf=1; /*輸入為正確標(biāo)志*/ else zf=0; /*輸入為錯(cuò)誤標(biāo)志*/ index=i+2; break;/出錯(cuò)地方 else if(ch1='.') /*如果上面條件
9、不符合,判斷是否是小數(shù)點(diǎn)*/ if(point<1) point+;/計(jì)算小數(shù)點(diǎn)的個(gè)數(shù) if(ch2>='0'&&ch2<='9') /*判斷小數(shù)點(diǎn)后是否是"0-9",或?yàn)?quot;$"*,否則出錯(cuò)?*/ zf=1; else zf=0; index=i+2; break; else zf=0; index=i+1; break; else if(ch1='e')/*判斷是否是指數(shù)標(biāo)志*/ if(ch2>='0' && ch2<='
10、;9'|ch2='+'|ch2='-') /*判斷指數(shù)標(biāo)志后是否是"0-9",或是"+,-","$",否則出錯(cuò)*/ zf=1; elseif(ch2='$')zf=0; index=i+1; break;zf=0; index=i+2; break; else if(ch1='+' | ch1='-')/*如果以上不符,判斷是否是"+,-,"*/ if(i=0) zf=0; index=i+1; break; if(ch2>
11、;='0' && ch2<='9' | ch2='$')/*"+,-"后只能為"0-9",否則出錯(cuò)*/zf=1; else zf=0; index=i+2; break; else zf=0; index=i+1; break; i+; /* i加1,判斷下一個(gè)字符*/ z=0;z1=0;z2=0; for(c=0;wfhc!='0'c+) if(wfhc='e')z1=1; if(wfhc='.'&&z1=1)z+; i
12、f(wfhc='.'&&z1=0)z2+; if(z>=2|z2>=2) for(c=c-1;c>=0;c-) if(wfhc='.')index=c+1; break; zf=0; if(zf=0)/*輸入字符串不是無(wú)符號(hào)數(shù)*/printf("輸入數(shù)據(jù)錯(cuò)誤的是第 %d位n",index); printf("Input number are error!n"); else printf("Input number are right!n");/*輸入字符串為無(wú)符號(hào)數(shù)*/5、 算法思想 在原來(lái)的基礎(chǔ)上進(jìn)行添加修改了增加了一些錯(cuò)誤信息,之后再增加了如何判斷其他的新的一些測(cè)試用例的實(shí)現(xiàn)判斷。六、測(cè)試程序出現(xiàn)的問(wèn)題及解決方法1. 完成這個(gè)實(shí)驗(yàn),在老師給定實(shí)驗(yàn)報(bào)告的基礎(chǔ)上,沒(méi)有做太多的彎路,做起來(lái)還算順利,但是由于自己的編程能力不好,還是遇到了很多的困難,有挑戰(zhàn)才有動(dòng)力進(jìn)步,在同學(xué)的幫助下我都一一克服了。2. 由于編寫(xiě)語(yǔ)言的能力十分有限,在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大連理工大學(xué)《大學(xué)IT5》2023-2024學(xué)年第二學(xué)期期末試卷
- 凍品倉(cāng)儲(chǔ)合同范本(溫度異常賠償責(zé)任條款)
- 電力行業(yè)事故案例分析與教訓(xùn)反思
- 電子商務(wù)中合同簽訂的合規(guī)要點(diǎn)解析
- 2025年新高考藝術(shù)生數(shù)學(xué)突破講義 專題31 概率小題綜合訓(xùn)練
- 湖南中醫(yī)藥高等??茖W(xué)?!峨娨晹z像與編輯》2023-2024學(xué)年第二學(xué)期期末試卷
- 未來(lái)的商務(wù)趨勢(shì)與高效筆記本電的選擇和改進(jìn)方向
- 電影中聲音設(shè)計(jì)與后期的對(duì)話
- 云南體育運(yùn)動(dòng)職業(yè)技術(shù)學(xué)院《微生物及免疫學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 地址遷移申請(qǐng)書(shū)
- 人工智能行業(yè)數(shù)據(jù)安全與隱私保護(hù)
- GB/T 9439-2023灰鑄鐵件
- (完整word版)Word信紙(A4橫條直接打印版)模板
- 向高層銷售:與決策者有效打交道
- DB32/T 4443-2023 罐區(qū)內(nèi)在役危險(xiǎn)化學(xué)品(常低壓)儲(chǔ)罐管理規(guī)范
- 尼泊爾簡(jiǎn)介課件
- 嬰幼兒托育機(jī)構(gòu)管理與運(yùn)營(yíng)實(shí)務(wù)高職PPT完整全套教學(xué)課件
- 新能源汽車電池石墨類負(fù)極材料一體化項(xiàng)目環(huán)境影響評(píng)價(jià)報(bào)告書(shū)
- 小學(xué)家長(zhǎng)接送學(xué)生協(xié)議書(shū)
- IT服務(wù)連續(xù)性實(shí)現(xiàn)指南
- OEM合作協(xié)議(定稿)
評(píng)論
0/150
提交評(píng)論