下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)2:語法分析程序班級(jí):計(jì)算機(jī)1103 姓名:王靜 學(xué)號(hào):1101308336一、 實(shí)驗(yàn)?zāi)康呐c實(shí)驗(yàn) 1.復(fù)習(xí)上下文無關(guān)文法的基本結(jié)構(gòu)、判斷方法; 2.理解文法存在左遞歸、回溯現(xiàn)象的害處及消除方法,掌握FIRST集、FOLLOW 集的含義、求解方法與用途,掌握LL(1)文法的判斷方法及構(gòu)造技術(shù); 3.掌握預(yù)測(cè)分析法的理論精髓,理解下推自動(dòng)機(jī)的基本概念及運(yùn)行原理; 4.學(xué)會(huì)基于上下文無關(guān)文法構(gòu)造LL(1)預(yù)測(cè)表,并使用Visual C+編寫LL (1)分析器; 5.能利用預(yù)測(cè)分析法,在給定的文法基礎(chǔ)上,分析特定輸入串的語法結(jié)構(gòu), 能判斷其是否合法,并能提取大部分中間信息,以備后續(xù)分析時(shí)使用。二、
2、 實(shí)驗(yàn)儀器與設(shè)備1. 微型電子計(jì)算機(jī)(PC機(jī))。2. 配置Windows 2000及以上版本操作系統(tǒng)。3. 安裝Visual C+6.0或Visual C#2003或Delphi6.0等以上版本的開發(fā)環(huán)境。三、實(shí)驗(yàn)內(nèi)容與步驟 1.實(shí)驗(yàn)內(nèi)容 已知文法GE: EE+T|E-T|T TT*F|T/F|F F(E)|I編寫該文法的LL(1)語法分析程序,用以識(shí)別下面的符號(hào)串:#(i+i)*i-i)/i#12001-90-9e |其它無符號(hào)整數(shù)45367910其他()+-*#8/ 2.實(shí)驗(yàn)步驟(一)準(zhǔn)備工作 回答下面問題,并將分析過程與結(jié)果寫在實(shí)驗(yàn)報(bào)告冊(cè)上。 上述文法GE存在左遞歸嗎?若存在,首先消除左
3、遞歸,得到對(duì)應(yīng)的文法GE; 構(gòu)造文法GE的預(yù)測(cè)分析表(需要先求FIRST、FOLLOW集),并根據(jù)定義, 逐步判斷該文法是否為L(zhǎng)L(1)文法; 基于上述分析表,仿照教材,寫出符號(hào)串#(i+i)*i-i)/i#的詳細(xì)的分析過程。2. 狀態(tài)轉(zhuǎn)換圖12001-90-9e |其它無符號(hào)整數(shù)4536789其他()+-*/3. 實(shí)驗(yàn)步驟 1. 判斷所給出的轉(zhuǎn)換圖能否實(shí)現(xiàn)預(yù)期目的?若有錯(cuò)誤,請(qǐng)加以修正; 2. 嘗試將狀態(tài)圖轉(zhuǎn)換為正則文法; 3. 試寫出無符號(hào)整數(shù)對(duì)應(yīng)的正則表達(dá)式; 4. 根據(jù)上述結(jié)果,構(gòu)造出最簡(jiǎn)的DFA; 5編寫對(duì)應(yīng)的詞法分析程序,并識(shí)別下述符號(hào)串: (23+12)*9-200)/54. 流
4、程圖1. 源程序 FILE *fp;char cbuffer;char *key8=if,else,for,while,do,return,break,continue;char *border6=,;,(,);char *arithmetic4=+,-,*,/;char *relation6=,=,;char *consts20=0,1,2,3,4,5,6,7,8,9;char *label20;int constnum=0,labelnum=0;int search(char searchchar,int wordtype) int i=0; switch (wordtype) case
5、1:for (i=0;i=7;i+) if (strcmp(keyi,searchchar)=0) return(i+1); break; case 2:for (i=0;i=5;i+) if (strcmp(borderi,searchchar)=0) return(i+1); return(0); break; case 3:for (i=0;i=3;i+) if (strcmp(arithmetici,searchchar)=0) return(i+1); return(0); break; case 4:for (i=0;i=5;i+) if (strcmp(relationi,sea
6、rchchar)=0) return(i+1); return(0); break; case 5: for (i=0;i=constnum;i+) if (strcmp(constsi,searchchar)=0) return(i+1); break; case 6:for (i=0;i=labelnum;i+) if (strcmp(labeli,searchchar)=0) return(i+1); labeli-1=(char *)malloc(sizeof(searchchar); strcpy(labeli-1,searchchar); labelnum+; return(i);
7、 break; char alphaprocess(char buffer)/關(guān)鍵字 int atype; int i=-1; char alphatp20; while (isalpha(buffer)|(isdigit(buffer) alphatp+i=buffer; buffer=fgetc(fp); alphatpi+1=0; if (atype=search(alphatp,1) printf(%s t(1,%d)n,alphatp,atype-1);/結(jié)束 else atype=search(alphatp,6); printf(%s t(6,%d)n,alphatp,atype
8、-1); return(buffer);char digitprocess(char buffer)/數(shù)字 int i=-1; char digittp20; int dtype; while (isdigit(buffer) digittp+i=buffer; buffer=fgetc(fp); digittpi+1=0; dtype=search(digittp,5); printf(%s t(5,%d)n,digittp,dtype-1); return(buffer);char otherprocess(char buffer)/其它字符 int i=-1; char othertp2
9、0; int otype,otypetp; othertp0=buffer; othertp1=0; if (otype=search(othertp,3) printf(%s t(3,%d)n,othertp,otype-1); buffer=fgetc(fp); goto out; if (otype=search(othertp,4) buffer=fgetc(fp); othertp1=buffer; othertp2=0; if (otypetp=search(othertp,4) printf(%s t(4,%d)n,othertp,otypetp-1); goto out; el
10、se othertp1=0; printf(%s t(4,%d)n,othertp,otype-1); goto out; if (buffer=:) buffer=fgetc(fp); if (buffer=) printf(:= (2,2)n); buffer=fgetc(fp); goto out; else if (otype=search(othertp,2) printf(%s t(2,%d)n,othertp,otype-1); buffer=fgetc(fp); goto out; if (buffer!=n)&(buffer!= ) printf(%c error,not a wordn,buffer); buffer=fgetc(fp);out: return(buffer);void main() int i; for (i=0;i=20;i+) labeli=NULL; ; if (fp=fopen(message.txt,r)=NULL) printf(error); elsecbuffer = fgetc(fp);while (cbuffer!=EOF) if (isalpha(cbuff
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版八年級(jí)物理上冊(cè)《3.1溫度》同步測(cè)試題及答案
- 煤礦開采區(qū)域地下水污染防治技術(shù)路徑
- 2024屆四川省成都龍泉中學(xué)高考化學(xué)三模試卷含解析
- 2024高中地理第二章自然環(huán)境中的物質(zhì)運(yùn)動(dòng)和能量交換2-1不斷變化的地表形態(tài)內(nèi)力作用與地表形態(tài)學(xué)案湘教版必修1
- 2024高中生物專題2微生物的培養(yǎng)與應(yīng)用課題3分解纖維素的微生物的分離課堂演練含解析新人教版選修1
- 2024高中語文第三單元因聲求氣吟詠詩韻自主賞析蘇幕遮學(xué)案新人教版選修中國(guó)古代詩歌散文欣賞
- 2024高考地理一輪復(fù)習(xí)第四章地表形態(tài)的塑造第一講營(yíng)造地表形態(tài)的力量學(xué)案
- 2024高考化學(xué)一輪復(fù)習(xí)第3章自然界及材料家族中的元素第4講海水中的化學(xué)元素學(xué)案魯科版
- 2024高考化學(xué)二輪復(fù)習(xí)示范卷5含解析
- 2024高考地理一輪復(fù)習(xí)四地理計(jì)算專練含解析
- NBT 47013.10-2015 承壓設(shè)備無損檢測(cè) 第10部分:衍射時(shí)差法超聲檢測(cè)
- 2024年南京旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫附答案
- (正式版)YBT 6328-2024 冶金工業(yè)建構(gòu)筑物安全運(yùn)維技術(shù)規(guī)范
- 2015年10月自考00541語言學(xué)概論試題及答案含解析
- 越南嬰兒食品行業(yè)現(xiàn)狀分析
- 生產(chǎn)車間工藝員年終總結(jié)
- 特色酒吧方案計(jì)劃書
- 重慶市南開中學(xué)2023-2024學(xué)年中考三模英語試題含答案
- 2023年上海高中物理合格考模擬試卷一含詳解
- 2022版義務(wù)教育(地理)課程標(biāo)準(zhǔn)(附課標(biāo)解讀)
- 2024年滑雪用品行業(yè)分析報(bào)告及未來發(fā)展趨勢(shì)
評(píng)論
0/150
提交評(píng)論