詞法分析實(shí)驗(yàn)報(bào)告

詞法分析實(shí)驗(yàn)報(bào)告

ID:3920361

大?。?80.39 KB

頁數(shù):18頁

時(shí)間:2017-11-25

詞法分析實(shí)驗(yàn)報(bào)告_第1頁
詞法分析實(shí)驗(yàn)報(bào)告_第2頁
詞法分析實(shí)驗(yàn)報(bào)告_第3頁
詞法分析實(shí)驗(yàn)報(bào)告_第4頁
詞法分析實(shí)驗(yàn)報(bào)告_第5頁
資源描述:

《詞法分析實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、07A409901020402:1.為了加強(qiáng)對編譯原理第三章詞法分析原理的掌握和運(yùn)用到實(shí)際動(dòng)手能力上。2.通過對給定源語言詞法分析程序的設(shè)計(jì),加深對詞法分析原理的理解,掌握源語言的接受、存貯、預(yù)處理和掃描分析,生成正確的單詞符號串二元式序列。1.實(shí)驗(yàn)要求的直接分析法,即從左向右掃描源程序,一旦發(fā)現(xiàn)有獨(dú)立意義的字符串時(shí),即將其改造統(tǒng)一長度的二元組(t,i)輸出,其中t表示單詞種別,i為相應(yīng)內(nèi)部表示,本題t分為五類:K(關(guān)鍵字)、I(標(biāo)識符)、C(常數(shù))、P(界符),L(標(biāo)號)i為特定項(xiàng)的指針值,對應(yīng)于每一類屬性的單詞均設(shè)置相應(yīng)的有貯表格,在識別過程中每識別出一個(gè)

2、單詞,則將其順序放入相應(yīng)的符號表中。2.源程序利用行編輯錄入,以TEXT文件形式存貯在盤上,詞法分析程序,先對源程序作預(yù)處理掃描生成新的TEXT文件。預(yù)處理的功能是剔除無用的空白、跳格、回車和換行等編輯性字符;去掉注解部分,連接繼續(xù)行,給出句未符。詞法分析器我用的是c#語言寫的一個(gè)界面形式的詞法分析器,核心思想是首先一個(gè)方法是進(jìn)行預(yù)處理,預(yù)處理將源程序中所有的連續(xù)空格回車等注釋的去掉只剩下一個(gè)空格,采用的是超前搜索的思想解決預(yù)處理的函數(shù),然后針對識別關(guān)鍵字和標(biāo)示符采用的是狀態(tài)轉(zhuǎn)換圖進(jìn)行識別,課本第三章那種思想,這樣就可以識別出任何關(guān)鍵字和標(biāo)示符,常量,界符和運(yùn)

3、算符還有關(guān)系運(yùn)算符等。采用的是超前進(jìn)位收索的算法,這樣就可以實(shí)現(xiàn)預(yù)處理方法,將多余的空格回車,換行,還有tab建還有注釋都去掉,這樣就涉及一個(gè)問題就是,/*…………*/之間的問題,需要超前搜索來判斷/后面的接近著的字符是不是*如果是那么后面的都去掉知道遇到*/為止,同樣道理//也是這樣。本詞法分析器所分析的源程序?yàn)椋?includevoidmain()/*主函數(shù)*/{inta,b,c;/*定義變量*/printf("Inputa,b:");scanf("%d,%d",&a,&b);/*輸入變量a和b的值*/c=max(a,b);/*調(diào)用max

4、函數(shù),將得到的值賦給c*/printf("Maxofaandbis%d",c);/*輸出c的值*/}intmax(intx,inty)/*定義max函數(shù),函數(shù)值為整型,x,y為形式參數(shù)*/{intz;/*max函數(shù)中用到的變量z,也要加以定義*/if(x>y)z=x;elsez=y;return(z);/*將z的值返回,通過max帶回調(diào)用處*/}詞法分析程序?yàn)椋?include#include#includestructOutForm{charlabel;charstr_result[20];};s

5、tructOutFormOut_Restut[10000];////////結(jié)構(gòu)體存放二維組的結(jié)果/////////////////////intstruct_point=0;////////////////////結(jié)構(gòu)體個(gè)數(shù)指針,表示有多少個(gè)二維組intpoint=0;//////////預(yù)處理后字符的個(gè)數(shù)指針////////////////////////////////////////////////////////////////存放關(guān)鍵字的二維數(shù)組//////////////////////////////////////////////////ch

6、arKeyName[32][20]={{'i','n','t'},{'w','h','i','l','e'},{'b','r','e','a','k'},{'v','o','i','d'},{'c','o','n','t','i','n','u','e'},{'r','e','t','u','r','n'},{'i','f'},{'e','l','s','e'},{'f','o','r'},{'a','u','t','o'},{'d','o','u','b','l','e'},{'s','t','r','u','c','t'},{'l','o','n','g'

7、},{'s','w','i','t','c','h'},{'c','a','s','e'},{'t','y','p','e','d','e'},{'c','h','a','r'},{'e','x','t','e','r','n'},{'u','n','i','o','n'},{'c','o','n','s','t'},{'f','l','o','a','t'},{'s','h','o','r','t'},{'u','n','s','i','g','n','e','d'},{'s','i','g','n','e','d'},{'d','e','f','a','u

8、','l','t'},{'g','o'

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。