




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五人股權(quán)合同范例
- 兼職工作合同范例
- 書(shū)委托代銷合同范例
- 公司網(wǎng)簽合同范例
- 企業(yè)投融資合同范例
- 企業(yè)借貸合同質(zhì)押合同范例
- AlMgB14-TiB2復(fù)合陶瓷材料在多環(huán)境中的摩擦學(xué)性能研究
- 關(guān)于配送合同范例
- 基于界面調(diào)控的高性能銅鋅錫硫硒太陽(yáng)能電池研究
- 保姆合同范例內(nèi)容
- 離婚登記申請(qǐng)受理回執(zhí)單
- 無(wú)圍標(biāo)、串標(biāo)行為承諾書(shū)
- 第三次全國(guó)國(guó)土調(diào)查土地分類
- 商業(yè)秘密及內(nèi)部事項(xiàng)保密管理辦法
- 發(fā)展?jié)h語(yǔ)初級(jí)綜合1電子版
- 某鐵路注漿處理工藝性試驗(yàn)方案
- 軟件工程?hào)|北大學(xué)信息科學(xué)與工程學(xué)院課件
- 電力電子技術(shù)課后習(xí)題答案
- 文化研究會(huì)章程
- 市政道路工程監(jiān)理大綱范本完整
- 浙江大學(xué)C語(yǔ)言期末上機(jī)考試題
評(píng)論
0/150
提交評(píng)論