詞法分析程序構造原理與實現(xiàn)技術編譯原理實驗報告

詞法分析程序構造原理與實現(xiàn)技術編譯原理實驗報告

ID:17422497

大小:281.45 KB

頁數(shù):19頁

時間:2018-08-31

詞法分析程序構造原理與實現(xiàn)技術編譯原理實驗報告_第1頁
詞法分析程序構造原理與實現(xiàn)技術編譯原理實驗報告_第2頁
詞法分析程序構造原理與實現(xiàn)技術編譯原理實驗報告_第3頁
詞法分析程序構造原理與實現(xiàn)技術編譯原理實驗報告_第4頁
詞法分析程序構造原理與實現(xiàn)技術編譯原理實驗報告_第5頁
資源描述:

《詞法分析程序構造原理與實現(xiàn)技術編譯原理實驗報告》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

1、編譯原理實驗詞法分析程序構造原理與實現(xiàn)技術目錄引言3一、實驗目的3二、實驗環(huán)境3三、實驗內容3四、實驗要求4五、程序功能描述45.1輸入輸出45.2大小寫不敏感55.3識別大多數(shù)常用程序字符55.4注釋的處理55.5錯誤檢查和處理5六、主要數(shù)據(jù)結構6七、程序結構描述67.1各單詞符號的類別編碼67.2程序總體以及局部執(zhí)行圖67.3設計方法87.4函數(shù)定義及函數(shù)之間的調用關系8八、程序測試8代碼附錄12引言本課程開展研究性教學的目的是,在教師的引導下以問題回朔與思維啟發(fā)的方式,使學生在不斷的探究過程中掌握編譯程序設計和構造的基本原理和實現(xiàn)技

2、術,啟迪學生的抽象思維、激發(fā)學生的學習興趣、培養(yǎng)學生的探究精神和專業(yè)素養(yǎng),從而提高學生發(fā)現(xiàn)問題、分析問題和解決問題的能力。一、實驗目的1.解決正則文法到狀態(tài)轉換圖的轉化問題2.掌握正則文法及其狀態(tài)轉換圖的基本概念,正則表達式及有限自動機的基本概念3.深入理解理論對實踐的指導作用:基本原理、實現(xiàn)技術和方法的正確運用4.掌握正規(guī)文法構造相應的狀態(tài)轉換圖的基本方法和正則表達式構造有限自動機的基本方法及不確定有限自動機確定化的基本方法5.完成詞法分析程序的設計與編寫二、實驗環(huán)境軟件:操作系統(tǒng):WINDOWS8應用軟件:VC6.0三、實驗內容1、教

3、學安排內容:完成以下正則文法所描述的Pascal語言子集單詞符號的詞法分析程序。<標識符>→字母︱<標識符>字母︱<標識符>數(shù)字<無符號整數(shù)>→數(shù)字︱<無符號整數(shù)>數(shù)字<單字符分界符>→+︱-︱*︱;︱(︱)<雙字符分界符>→<大于>=︱<小于>=︱<小于>>︱<冒號>=︱<斜豎>*<小于>→<<等于>→=<大于>→><冒號>→:<斜豎>→/該語言的保留字:beginendifthenelsefordowhileandornot2、在此基礎上,我自己新完善了一下詞法分析處理:1)新增保留字:returnbreakmain2)擴充可識別的標

4、識符文法:<標識符>→<標識符><下劃線>字母︱<標識符><下劃線>數(shù)字3)新增可識別的經常使用的符號:如'︱"︱==︱!=︱(t)(r)︱%s(%d)(%f)等,以及數(shù)組(形如a[])還有程序經常出現(xiàn)的{},<>等四、實驗要求1.給出各單詞符號的類別編碼;2.詞法分析程序應能發(fā)現(xiàn)輸入串中的錯誤;3.詞法分析作為單獨一遍編寫,詞法分析結果為二元式序列組成的中間文件;4.設計兩個測試用例(盡可能完備),并給出測試結果。五、程序功能描述5.1輸入輸出輸入:將事先準備好的代碼錄入txt中,程序將改*.txt進行詞法分析輸出:在命令行中以

5、二元組(類別碼,TOKEN)顯示5.2大小寫不敏感將純字母組合中的大寫字母轉換成小寫后,在保留字數(shù)組中查找是否是系統(tǒng)保留字5.3識別大多數(shù)常用程序字符能夠識別C語言中常見的rt,%s%d%f,單引號,雙引號,邏輯運算符以及形如a[]的數(shù)組的符號等。5.4注釋的處理1.當輸入文件中出現(xiàn)了/*的字符串之后,程序會自動忽略之后的輸入字符串,直到遇*/,但程序會輸出/*2.當輸入文件中出現(xiàn)了//的字符串之后,程序會自動忽略之后的輸入字符串,直到遇回車字符后,則判斷為注釋結束,但程序會輸出//5.5錯誤檢查和處理當輸入串為未定義的字符時,在

6、輸出文件中顯示“Error!”,如輸入¥六、主要數(shù)據(jù)結構主要是利用數(shù)組,進行保留字的查詢與將符合某個正則文法的字符歸結到一起。七、程序結構描述7.1各單詞符號的類別編碼單詞符號類別碼單詞符號類別碼begin1:=23end2+24if3-25then4*26else5/27for6;28do7(29while8)30and9{31or10}32not11數(shù)組(形如a[])33return12#34break13.35main14,36ID標識符15形如,37INT整型16形如%s38<17"39<=18!40=19!=41<>20==

7、42>21’43>=22//

8、/*44

9、457.2程序總體以及局部執(zhí)行圖總體流程圖:詞法分析流程圖:7.3設計方法1.預定義好各單詞符號的類別,包括保留字2.用數(shù)組來存儲識別過程中的單詞字符3.循環(huán)一個一個字符的讀取與分析,若開頭是字母,則判斷為標識符,并將其轉換為小寫,然后讀取完后,進行保留字比較,若是,則輸出保留字的二元組;不是則輸出標識符的二元組4.開頭不是字母的而是數(shù)字的,則繼續(xù)讀取,直到數(shù)字全讀完,輸出類別是整型的二元組5.若不屬于以上2中類型,則轉到其他字符的判別,查找宏定義中的字符,找到則輸出其二元組,沒有找到,則進行出錯輸

10、出。7.4函數(shù)定義及函數(shù)之間的調用關系main函數(shù)中,調用fopen函數(shù),將文本文件打開,在調用scanner_example函數(shù)進行詞法分析,在分析過程中,調用lookup函數(shù)進行保留字查找

當前文檔最多預覽五頁,下載文檔查看全文

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

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