【精品】詞法分析實驗報告

【精品】詞法分析實驗報告

ID:43602091

大?。?04.53 KB

頁數(shù):9頁

時間:2019-10-11

【精品】詞法分析實驗報告_第1頁
【精品】詞法分析實驗報告_第2頁
【精品】詞法分析實驗報告_第3頁
【精品】詞法分析實驗報告_第4頁
【精品】詞法分析實驗報告_第5頁
資源描述:

《【精品】詞法分析實驗報告》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、實驗1詞法分析實驗報吿一、實驗?zāi)康耐ㄟ^編寫并上機調(diào)試一個詞法分析程序,掌握在對程序設(shè)計語言的源程序進行掃描的過程中,將其分解后各類單詞的詞法分析方法。二、實驗內(nèi)容輸入:據(jù)教學(xué)要求和學(xué)生貝體情況,從具有代表性的高級程序設(shè)計語言中,選取一個適當(dāng)大小的子集,例如可以選取一類典型單詞,也可以盡可能使各種類型的單詞都能兼顧到。輸出:單詞串的輸出形式,所輸出的每一單詞均按形如(CLASS,VALUE)的二元式編碼。對于變量和常數(shù),CLASS字段為相應(yīng)的類別碼,VALUE字段則是該標(biāo)識符、常數(shù)在其符號表中登記項的序號(要求在變量名表登記項屮

2、存放該標(biāo)識符的字符串;常數(shù)表登記項屮則存放該常數(shù)的二進制形式)。對于關(guān)鍵字和分隔符,采用一詞一類的編碼形式。由于采用一?詞一類的編碼方式,所以僅需在二元式的CLASS字段上放置和應(yīng)的單詞的類別碼,VALUE字段則為“空”。不過,為便于查看由詞法分析程序所輸出的單詞串,要求在CLASS字段上直接放置單詞符號串本身。三、實驗要求K待分析的簡單語言的詞法(1)關(guān)鍵字:beginifthenwhiledoend所有關(guān)鍵字都是小寫。(2)運算符和界符::=+-*/<<=<>>>==;()#(3)其他單詞是標(biāo)識符(ID)和整型常數(shù)(NUM

3、),通過以下正規(guī)式定義:ID=letter(letterldigit)*NUM=digitdigit*(4)空格由空白、制表符和換行符組成。空格-?般用來分隔ID、NUM,運算符、界符和關(guān)鍵字,詞法分析階段通常被忽略。2、各種單詞符號對應(yīng)的種別碼單詞符乃種別碼單詞符號種別碼begin1■■17if2■—■—18then3>20while4<>21do5<=22end6<23letter(letterldigit)*10>=24digitdigit*1125*13■q26/14(27+15)28■16#()3、詞法分析程序的功能

4、輸入:所給文法的源程序字符吊。輸Hh二元組(syn,token或sum)構(gòu)成的序歹ij。其中:syn為單詞種別碼;token為存放的單詞□身字符串;sum為整型常數(shù)。四、源程序代碼:#include#include#includecharprog[80],token[8];charch;intsyn,p,m=0,n,row,sum=0;char*rwtab[6]={“begin”,”if”,“then",“while”,“do”,“end"};voidscaner(){

5、for(n=0;n<&n++)token[nJ=NULL;ch=prog[p++];while(ch==,')ch=prog[p];P++;}if((ch>=*a'&&ch<=,z')ll(ch>=,A'&&ch<='Z,)){m=0;while((ch>=,0,&&ch<=,9,)ll(ch>=,a,&&ch<=,z,)ll(ch>=,A,&&ch<='Z,)){tokenfm++]=ch;ch=prog[p++];}token[m++]=W;p--;syn=10;for(n=0;n<6;n++)if(strcmp(toke

6、n,rwtab[n])==0){syn=n+l;break;}}elseif((ch>='()'&&chv=9)){{sum=0;while((ch>='0'&&chv=9)){sum二sum*10+ch-'O';ch=progfp++];}}P??;syn=11;if(sum>32767)syn=-l;elseswitch(ch){case,<,:m=0;token[iTi++]=ch;ch=prog[p++l;if(ch==*>'){syn=21;tokenfm++]=ch;}elseif(ch=='='){syn=22;

7、token[m++l=ch;}else{syn=23;p--;}break;case,>f:m=0;token[m++]=ch;ch=prog[p++J;if(ch==*='){syn=24;token[m++]=ch;}else{syn=20;P-sbreak;casc,:r:m=0;tokcn[m++]=ch;ch=prog[p++];if(ch==,='){syn=18;token[m++]=ch;}else{syn=17;p--;}break;case,*,:syn=13;token[0]=ch;break;casel

8、/,:syn=14;token[0]=ch;break;case屮:syn=15;tokcn[0]=ch;brcak;case-r:syn=16;token[0]=ch;break;case=,:syn=25;tokenf()l=ch;break;casel;l:syn=26

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

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

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