編譯原理實(shí)驗(yàn)報(bào)告2-詞法分析程序的設(shè)計(jì)(共9頁).doc
《編譯原理實(shí)驗(yàn)報(bào)告2-詞法分析程序的設(shè)計(jì)(共9頁).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《編譯原理實(shí)驗(yàn)報(bào)告2-詞法分析程序的設(shè)計(jì)(共9頁).doc(9頁珍藏版)》請?jiān)趨R文網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)2 詞法分析程序的設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康恼莆沼?jì)算機(jī)語言的詞法分析程序的開發(fā)方法。 二、實(shí)驗(yàn)內(nèi)容編制一個(gè)能夠分析三種整數(shù)、標(biāo)識(shí)符、主要運(yùn)算符和主要關(guān)鍵字的詞法分析程序。三、實(shí)驗(yàn)要求1、根據(jù)以下的正規(guī)式,編制正規(guī)文法,畫出狀態(tài)圖;標(biāo)識(shí)符 <字母>(<字母>|<數(shù)字字符>)*十進(jìn)制整數(shù)0 | ((1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*)八進(jìn)制整數(shù) 0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)*十六進(jìn)制整數(shù)0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e
2、|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)*運(yùn)算符和界符+ - * / > < = ( ) ;關(guān)鍵字if then else while do 2、根據(jù)狀態(tài)圖,設(shè)計(jì)詞法分析函數(shù)int scan( ),完成以下功能:1) 從文本文件中讀入測試源代碼,根據(jù)狀態(tài)轉(zhuǎn)換圖,分析出一個(gè)單詞,2) 以二元式形式輸出單詞<單詞種類,單詞屬性>其中單詞種類用整數(shù)表示:0:標(biāo)識(shí)符1:十進(jìn)制整數(shù)2:八進(jìn)制整數(shù)3:十六進(jìn)制整數(shù)運(yùn)算符和界符,關(guān)鍵字采用一字一符,不編碼其中單詞屬性表示如下:標(biāo)識(shí)符,整數(shù)由于采用一類一符,屬性用單詞表示運(yùn)算符和界符,關(guān)鍵字采用一字一符,
3、屬性為空3、編寫測試程序,反復(fù)調(diào)用函數(shù)scan( ),輸出單詞種別和屬性。 四、實(shí)驗(yàn)環(huán)境PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)Turbo C 程序集成環(huán)境或 Visual C+ 程序集成環(huán)境 五、實(shí)驗(yàn)步驟1、 根據(jù)正規(guī)式,畫出狀態(tài)轉(zhuǎn)換圖;01字母空白字母或數(shù)字非字母與數(shù)字3194092非數(shù)字5061707非0778x909或af非09與af1011+ 或或* 或/ 或< 或> 或= 或 (或 ) 或 ;12if then else while do*非17與x09或af2、 根據(jù)狀態(tài)圖,設(shè)計(jì)詞法分析算法;觀察狀態(tài)圖
4、,其中狀態(tài)2、4、7、10(右上角打了星號)需要回調(diào)一個(gè)字符。聲明一些變量和函數(shù):ch:字符變量,存放最新讀進(jìn)的源程序字符。strToken:字符串變量,存放構(gòu)成單詞符號的字符串。GetChar():子函數(shù),將下一輸入字符讀到ch中,搜索指示器前移一字符位置。GetBC():子函數(shù),檢查ch中的字符是否為空白。若是,則調(diào)用GetChar()直至ch中進(jìn)入一個(gè)非空白字符。Concat():子函數(shù),將ch中的字符連接到strToken之后。IsLetter():布爾函數(shù),判斷ch中的字符是否為字母。IsDigit():布爾函數(shù),判斷ch中的字符是否為數(shù)字。Reserve():整型函數(shù),對strTo
5、ken中的字符串查找保留字表,若它是一個(gè)保留字則返回它的編碼,否則返回0。SearchOp():整型函數(shù),對ch查找運(yùn)算符和界符,若它是一個(gè)運(yùn)算符或界符,則返回它的編碼,否則返回0。Retract():子函數(shù),將搜索指示器回調(diào)一個(gè)字符位置,將ch置為空白字符。ProError():錯(cuò)誤處理函數(shù)。關(guān)鍵字保存在字符數(shù)組中,定義編碼為相對數(shù)組首地址的位置 + 1。保留子表順序如下: if ,then ,else ,while, do ,則相應(yīng)編碼為:1,2,3,4,5。運(yùn)算符和界符保存在字符數(shù)組中,編碼定義與關(guān)鍵字相同,順序如下: + ,- , * , / , >
6、 , < , = , ( , ) , ;,編碼為:110。二元表單詞單詞種類屬性標(biāo)識(shí)符0單詞自身十進(jìn)制整數(shù)1單詞自身八進(jìn)制整數(shù)2單詞自身十六進(jìn)制整數(shù)3單詞自身運(yùn)算符和界符單詞自身-關(guān)鍵字單詞自身-算法如下:ch= ;strToken=” ”;GetBC();if(IsLetter() while(IsLetter() | IsDigit() Concat();GetChar(); Retract();If(Reserve()printf("<%s , ->", strToken); else printf("<,0,%s >"
- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
20 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 編譯 原理 實(shí)驗(yàn) 報(bào)告 詞法 分析 程序 設(shè)計(jì)
鏈接地址:http://zhizhaikeji.com/p-4886020.html