詞法分析器的設(shè)計與實現(xiàn)編譯原理實驗報告(總9頁).doc
《詞法分析器的設(shè)計與實現(xiàn)編譯原理實驗報告(總9頁).doc》由會員分享,可在線閱讀,更多相關(guān)《詞法分析器的設(shè)計與實現(xiàn)編譯原理實驗報告(總9頁).doc(9頁珍藏版)》請在匯文網(wǎng)上搜索。
1、中北大學軟件學院實 驗 報 告 專 業(yè) 軟件工程 課程名稱 編譯原理 學 號 12 姓 名 楊倩 輔導教師 張靜 成績 實驗日期實驗時間14:0018:001實驗名稱 :詞法分析器的設(shè)計與實現(xiàn)2、實驗?zāi)康模?)掌握C語言單詞符號的劃分、正規(guī)式、狀態(tài)轉(zhuǎn)換圖及詞法分析器的實現(xiàn)。(2)掌握詞法分析程序的作用。3、實驗要求(1)對任給的一個C語言源程序,能夠濾掉空格、回車換行符、tab鍵及注釋。(2)識別各類單詞符號,如關(guān)鍵字、標識符、運算符、常數(shù)、界符,結(jié)果以二元式形式輸出,并構(gòu)造符號表。(3)輸出有詞法錯誤的單詞及所在行號。(在此階段只能識別有限的詞法錯誤)4、實驗原理根據(jù)掃描到的單詞符號的第一個
2、字符的種類,分別轉(zhuǎn)到相應(yīng)的程序進行處理。這些程序的功能就是識別以相應(yīng)字符開頭的各類單詞符號。5、實驗步驟(1)根據(jù)C語言各類單詞的正規(guī)式,構(gòu)造能識別各類單詞的狀態(tài)轉(zhuǎn)換圖。(2)根據(jù)狀態(tài)轉(zhuǎn)換圖,構(gòu)造識別各類單詞的詞法分析器。6、狀態(tài)轉(zhuǎn)換圖及詞法分析程序pp#include#include#include#include /定義關(guān)鍵字char *Key10=main,void,int,char,printf,scanf,else,if,return;char Word20,ch; / 存儲識別出的單詞流int IsAlpha(char c) /判斷是否為字母if(c=a)|(c=A) return
3、 1;else return 0; int IsNum(char c) /判斷是否為數(shù)字if(c=0&c=9) return 1;else return 0;int IsKey(char *Word) /識別關(guān)鍵字函數(shù)int m,i;for(i=0;i9;i+)if(m=strcmp(Word,Keyi)=0)if(i=0)return 2;return 1; return 0;void scanner(FILE *fp) /掃描函數(shù)char Word20=0;char ch;int i,c;ch=fgetc(fp); /獲取字符,指針fp并自動指向下一個字符if(IsAlpha(ch) /判
4、斷該字符是否是字母Word0=ch;ch=fgetc(fp);i=1;while(IsNum(ch)|IsAlpha(ch) /判斷該字符是否是字母或數(shù)字Wordi=ch;i+;ch=fgetc(fp); Wordi=0; /0 代表字符結(jié)束(空格)fseek(fp,-1,1); /回退一個字符c=IsKey(Word); /判斷是否是關(guān)鍵字if(c=0) printf(%st$普通標識符nn,Word);/不是關(guān)鍵字else if(c=2) printf(%st$主函數(shù)nn,Word);else printf(%st$關(guān)鍵字nn,Word); /輸出關(guān)鍵字 else /開始判斷的字符不是字母
- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
20 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 詞法 分析器 設(shè)計 實現(xiàn) 編譯 原理 實驗 報告