編譯原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一編寫(xiě)詞法分析程序09123132徐裕_第1頁(yè)
編譯原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一編寫(xiě)詞法分析程序09123132徐裕_第2頁(yè)
編譯原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一編寫(xiě)詞法分析程序09123132徐裕_第3頁(yè)
編譯原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一編寫(xiě)詞法分析程序09123132徐裕_第4頁(yè)
編譯原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一編寫(xiě)詞法分析程序09123132徐裕_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、編譯原理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:編寫(xiě)詞法分析程序?qū)嶒?yàn)類型:驗(yàn)證型實(shí)驗(yàn)指導(dǎo)教師:何 中 勝專業(yè)班級(jí):09軟件Y姓 名:徐裕學(xué) 號(hào):09123132電子郵件:564747336實(shí)驗(yàn)地點(diǎn):秋白樓B720實(shí)驗(yàn)成績(jī): 日期:2012年 4 月18 日一、實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)設(shè)計(jì)。測(cè)試詞法分析器程序,實(shí)現(xiàn)從源程序中分出各種單詞的方法,熟悉詞法分析程序中的工具自動(dòng)機(jī),進(jìn)一步理解自動(dòng)機(jī)理論,掌握文法轉(zhuǎn)換成自動(dòng)機(jī)的技術(shù)及有窮自動(dòng)機(jī)實(shí)現(xiàn)的方法。通過(guò)本實(shí)驗(yàn),應(yīng)達(dá)到以下目標(biāo):1、掌握從源程序文件中讀取有效字符的方法和產(chǎn)生源程序的內(nèi)容表達(dá)式的方法2、掌握詞法分析的試驗(yàn)方法3、上機(jī)測(cè)試編出的詞法分析程序二、實(shí)驗(yàn)過(guò)程1.首先建好關(guān)鍵字表

2、,分界符表和運(yùn)算符表。指針數(shù)組k為關(guān)鍵字表,每個(gè)數(shù)組元素存放一個(gè)關(guān)鍵字。采用不定長(zhǎng)的方式。 指針數(shù)組P存放分界符。為了簡(jiǎn)單起見(jiàn),分界符、算術(shù)運(yùn)算符和關(guān)系運(yùn)算符都放在p表中,合并成一類。2.instring 數(shù)組為輸入源程序和輸出單詞的單詞緩存。3.詞法分析過(guò)程根據(jù)從文件讀到的第一個(gè)字符(有時(shí)還需讀第二個(gè)字符),判斷單詞類,產(chǎn)生類號(hào):以字符1表示關(guān)鍵字;2表示標(biāo)識(shí)符;3 表示常數(shù);4 表示分界符;5 表示運(yùn)算符。4.根據(jù)第一個(gè)字符來(lái)寫(xiě)出相應(yīng)的處理程序和順序,流程圖如下:5.編寫(xiě)程序。三、實(shí)驗(yàn)結(jié)果1. 運(yùn)行程序前先建好一個(gè)文本文件(09123132.txt),假如內(nèi)容如圖所示。2.運(yùn)行程序,分析結(jié)

3、果在dos中顯示,每一個(gè)詞都按要求被分析出來(lái),并把每個(gè)詞的類型也打印出來(lái),如下圖所示:四、討論與分析實(shí)驗(yàn)內(nèi)容我通過(guò)上網(wǎng)查找各種資料,并逐步的了解題目的要求,之后在編寫(xiě)上面,關(guān)鍵字處理、標(biāo)識(shí)符和數(shù)字處理代碼寫(xiě)的比較順,但是還是在各種符號(hào)上面吃虧,程序并不是預(yù)期的,經(jīng)過(guò)幾次更改后,實(shí)驗(yàn)達(dá)到了要求,程序全部寫(xiě)完。五、附錄:關(guān)鍵代碼(給出適當(dāng)注釋,可讀性高)void main()void lexical(FILE *FP);int i;FILE *fp; /指針/printf(請(qǐng)創(chuàng)建k表:n); / 創(chuàng)建k表k0=BEGIN;k1=DO;k2=ELSE; k3=END;k4=IF;k5=THEN;k6

4、=VAR;k7=WHILE;/printf(請(qǐng)創(chuàng)建p表:n); / 創(chuàng)建p表p0=,;p1=;p2=.;p3=:=;p4=(;p5=);p6=+;p7=-;p8=*;p9=/;p10=;p11=;p14=;p15=;if(fp=fopen(09123132.txt,r)=NULL) /讀取文件夾下的文件printf(Cannot open the filen);exit(0);char ch,ch1; int n=0;ch1=ch=fgetc(fp);doif(ch1=a & ch1=A & ch1=a & ch=A & ch=0 & ch=9)instringn+=ch;elseinstri

5、ngn+=0;strupr(instring);for(i=0;i=7;i+)if(strcmp(instring,ki)=0) break;if(i=0 & ch1=0 & ch=a & ch=A & ch=Z)instringn+=ch;printf(error!t);puts(instring);n=0;ch=fgetc(fp);ch1=ch;instringn+=ch1;elseinstringn+=0;printf(%dt,type);puts(instring);n=0;ch1=ch;instringn+=ch1;elsetype=4; /處理其他if(ch1= | ch1=n |

6、 ch1=t)n=0;ch1=ch;instringn+=ch1;elseif(ch1=:)if(ch=)instringn+=ch;instringn=0;printf(%dt,type);puts(instring);ch=fgetc(fp);n=0;ch1=ch;instringn+=ch1;elseinstringn=0;printf(error!t);puts(instring);n=0;ch1=ch;instringn+=ch1;elseif(ch1=)instringn+=ch;instringn=0;puts(instring);ch=fgetc(fp);n=0;ch1=ch;

7、instringn+=ch1;elseinstringn=0;puts(instring);n=0;ch1=ch;instringn+=ch1;elseif(ch1=)type=5;printf(%dt,type);if(ch=)instringn+=ch;instringn=0;puts(instring);ch=fgetc(fp);n=0;ch1=ch;instringn+=ch1;elseinstringn=0;puts(instring);n=0;ch1=ch;instringn+=ch1;elseinstringn=0;for(i=0;i=15;i+)if(strcmp(instring,pi)=0)break;if(i=5)type=4;else if(i=15)type=5;printf(%dt,type);puts(instring);n=0;ch1=ch;instringn+=ch1;ch=fgetc(fp);while(!feof(fp);if(ch1= | ch1=n | ch1=t);elseinstringn=0;printf(%dt,type);puts(inst

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論