詞法分析器設計與實現_第1頁
詞法分析器設計與實現_第2頁
詞法分析器設計與實現_第3頁
詞法分析器設計與實現_第4頁
詞法分析器設計與實現_第5頁
已閱讀5頁,還剩22頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、合肥學院計算機科學與技術系課程實驗報告20162017學年第二學期課程軟件編譯技術學生姓名 羅萱 (組長)學號1404092012學生姓名鄭李學號1404092013學生姓名丁希林學號1404092016專業班級14軟工2班指導教師吳曉琴2017 年 3 月小組分工: 鄭李(完成數據的輸入和出錯輸出等操作,并完善代碼),丁希林(負責進行組員分工及寫識別出常數、運算符、界符等的實驗代碼和正常輸出操作),羅萱(負責寫出關鍵字和變量表結構等的識別代碼) 姓名完成工作鄭李1. 在main函數中進行輸入流和輸出流的控制;2. 代碼整合丁希林3. 寫常數識別的方法IsDigit()供lexicalAnal

2、ysis()輸出方法進行調用;4. 完成lexicalAnalysis()輸出方法中的運算符識別的代碼;5. 寫標識符識別的方法IsLetter()供lexicalAnalysis()輸出方法進行調用;羅萱6. 寫將關鍵字存儲在數組中的方法InitReserveTable();7. 加入變量名方法AddReserve()和變量表識別方法IsReserve()成績: 姓名教師評閱簽字: 年 月 日實驗序號及名稱:實驗一 詞法分析器的設計與實現 姓名 : 鄭李 實驗時間: 2017年3月25日1、 實驗目的和要求1. 實驗目的:通過設計并實現的詞法分析器,掌握對正規文法、正規式、有窮自動機、不確定

3、的有窮自動機(NFA)到確定的有窮自動機(NFA)轉換,DFA 最小化等單詞符號分析工具的具體設計實現,更進一步加深對程序設計語言源程序進行詞法分析方法和原理理解,能初步達到設計編制和調試編譯系統中詞法分析器的能力,增強解決實際問題的實踐能力。2. 實驗要求:從輸入的源程序中,識別出各個具有獨立意義的單詞符號(保留字、標識符、常數、運算符、界符)五大類。單詞符號種別編碼關鍵字(保留字)1標識符2常數3運算符4界符5依次以二元式(單詞種別碼,單詞符號的屬性值)輸出各個單詞符號,如遇到錯誤單詞符號時可顯示“Error,出錯的位置”,然后跳過錯誤部分繼續顯示)。例:如源程序為 C 語言,輸入:mai

4、n() int a,b,c; a=8;b=6;c=a+b;以文本文件輸出(output1.txt):(2,”main”)(5,”(“)(5,”)“)(5,”“)(1,”int”)(2,”a”)(5,”,”)(2,”b”)(5,”;”)(2,”a”)(4,”=”)(3,”10”)(5,”;”)(2,”b”)(4,”=”)(2,”a”)(4,”+”)(3,”20”)(5,”;”)(5,”“)2、 實驗環境和儀器設備Eclipse3、 相關資料和參考文獻(教材和實驗指導書以外)無4、 實驗任務詞法分析器設計與實現5、 實驗內容(步驟)1. 實驗內容:單詞的 BNF 表示<標識符>

5、4; <字母>|<字母數字><字母數字>à <字母><字母數字>|<數字><字母數字>|_<字母數字>|$<字母數字>|<字母數字>à<字母>|<數字><字母>àa|b|.|z<數字>à 0|1|.|9<常量>à<無符號整數><無符號整數>à <數字><數字串><數字串>à<數字&g

6、t;<數字串>|<運算符>à+|-|*/|=|<| =|<=|!=|><關鍵字>àmain|if|then|while|do<界符>à|(|)|;說明:產生式中<,>括起來的部分表示非終結符號。將以文法轉換成有窮自動機。 實現有窮自動機識別單詞符號2.實驗步驟根據詞法規則總結出每種單詞符號的結構特征設計每種單詞符號有窮自動機(狀態轉換圖)將幾種單詞符號的狀態轉換圖進行合并成唯一的初態,構造一個能識別所有種類的單詞符號 NFANFA 確定化 DFA,再最小化 DFA將 DFA 構造狀態矩陣

7、;用狀態矩陣設計出一個詞法分析程序。6、 完整的實驗結果(程序、電路或相關的數據等)記錄(不夠可在第四頁續)輸入:main()                                int a,b; a = 10; b = a + 20; 實驗結果:main 2( 5) 5 5in

8、t 0a 2, 5b 2, 5c 2; 5a 2= 48 3; 5b 2= 46 3; 5c 2= 4a 2+ 4b 2; 5 57、 實驗結果分析 在編寫詞法分析器的過程中我們雖然沒有真的把所有的狀態轉換圖建立出來,但是這里面主要用到的思想還是根據狀態轉換圖實現對單詞的識別。我們變量表進行數據存儲,然后,每輸入一個字符就檢測應該進入什么狀態,并將該字符傳到lexicalAnalysis()中進行while循環對應,完成輸出操作后contine再次循環查詢。直至最后完成全部的識別。實驗序號及名稱:實驗一 詞法分析器的設計與實現 姓名 : 丁希林 實驗時間: 2017年3月25日一、實驗目的和要

9、求1.實驗目的:通過設計并實現的詞法分析器,掌握對正規文法、正規式、有窮自動機、不確定的有窮自動機(NFA)到確定的有窮自動機(NFA)轉換,DFA 最小化等單詞符號分析工具的具體設計實現,更進一步加深對程序設計語言源程序進行詞法分析方法和原理理解,能初步達到設計編制和調試編譯系統中詞法分析器的能力,增強解決實際問題的實踐能力。2.實驗要求:從輸入的源程序中,識別出各個具有獨立意義的單詞符號(保留字、標識符、常數、運算符、界符)五大類。單詞符號種別編碼關鍵字(保留字)1標識符2常數3運算符4界符5依次以二元式(單詞種別碼,單詞符號的屬性值)輸出各個單詞符號,如遇到錯誤單詞符號時可顯示“Erro

10、r,出錯的位置”,然后跳過錯誤部分繼續顯示)。例:如源程序為 C 語言,輸入:main() int a,b,c; a=8;b=6;c=a+b;以文本文件輸出(output1.txt):(2,”main”)(5,”(“)(5,”)“)(5,”“)(1,”int”)(2,”a”)(5,”,”)(2,”b”)(5,”;”)(2,”a”)(4,”=”)(3,”10”)(5,”;”)(2,”b”)(4,”=”)(2,”a”)(4,”+”)(3,”20”)(5,”;”)(5,”“)二、實驗環境和儀器設備Eclipse三、相關資料和參考文獻(教材和實驗指導書以外)無四、實驗任務詞法分析器設計與實現五、實驗內

11、容(步驟)2. 實驗內容:單詞的 BNF 表示<標識符>à <字母>|<字母數字><字母數字>à <字母><字母數字>|<數字><字母數字>|_<字母數字>|$<字母數字>|<字母數字>à<字母>|<數字><字母>àa|b|.|z<數字>à 0|1|.|9<常量>à<無符號整數><無符號整數>à <數字&g

12、t;<數字串><數字串>à<數字><數字串>|<運算符>à+|-|*/|=|<| =|<=|!=|><關鍵字>àmain|if|then|while|do<界符>à|(|)|;說明:產生式中<,>括起來的部分表示非終結符號。將以文法轉換成有窮自動機。 實現有窮自動機識別單詞符號2.實驗步驟根據詞法規則總結出每種單詞符號的結構特征設計每種單詞符號有窮自動機(狀態轉換圖)將幾種單詞符號的狀態轉換圖進行合并成唯一的初態,構造一個能識別所有種類的單詞

13、符號 NFANFA 確定化 DFA,再最小化 DFA將 DFA 構造狀態矩陣;用狀態矩陣設計出一個詞法分析程序。六、完整的實驗結果(程序、電路或相關的數據等)記錄(不夠可在第四頁續)輸入:main()                                int a,b; a =

14、10; b = a + 20; 實驗結果:main 2( 5) 5 5int 0a 2, 5b 2, 5c 2; 5a 2= 48 3; 5b 2= 46 3; 5c 2= 4a 2+ 4b 2; 5 5七、實驗結果分析 在編寫詞法分析器的過程中我們雖然沒有真的把所有的狀態轉換圖建立出來,但是這里面主要用到的思想還是根據狀態轉換圖實現對單詞的識別。我們變量表進行數據存儲,然后,每輸入一個字符就檢測應該進入什么狀態,并將該字符傳到lexicalAnalysis()中進行while循環對應,完成輸出操作后contine再次循環查詢。直至最后完成全部的識別。 實驗序號及名稱:實驗一 詞法分析器的設計

15、與實現 姓名 : 羅萱 實驗時間: 2017年3月25日一、實驗目的和要求1.實驗目的:通過設計并實現的詞法分析器,掌握對正規文法、正規式、有窮自動機、不確定的有窮自動機(NFA)到確定的有窮自動機(NFA)轉換,DFA 最小化等單詞符號分析工具的具體設計實現,更進一步加深對程序設計語言源程序進行詞法分析方法和原理理解,能初步達到設計編制和調試編譯系統中詞法分析器的能力,增強解決實際問題的實踐能力。2.實驗要求:從輸入的源程序中,識別出各個具有獨立意義的單詞符號(保留字、標識符、常數、運算符、界符)五大類。單詞符號種別編碼關鍵字(保留字)1標識符2常數3運算符4界符5依次以二元式(單詞種別碼,

16、單詞符號的屬性值)輸出各個單詞符號,如遇到錯誤單詞符號時可顯示“Error,出錯的位置”,然后跳過錯誤部分繼續顯示)。例:如源程序為 C 語言,輸入:main() int a,b,c; a=8;b=6;c=a+b;以文本文件輸出(output1.txt):(2,”main”)(5,”(“)(5,”)“)(5,”“)(1,”int”)(2,”a”)(5,”,”)(2,”b”)(5,”;”)(2,”a”)(4,”=”)(3,”10”)(5,”;”)(2,”b”)(4,”=”)(2,”a”)(4,”+”)(3,”20”)(5,”;”)(5,”“)二、實驗環境和儀器設備Eclipse三、相關資料和參考

17、文獻(教材和實驗指導書以外)無四、實驗任務詞法分析器設計與實現五、實驗內容(步驟)3. 實驗內容:單詞的 BNF 表示<標識符>à <字母>|<字母數字><字母數字>à <字母><字母數字>|<數字><字母數字>|_<字母數字>|$<字母數字>|<字母數字>à<字母>|<數字><字母>àa|b|.|z<數字>à 0|1|.|9<常量>à<無

18、符號整數><無符號整數>à <數字><數字串><數字串>à<數字><數字串>|<運算符>à+|-|*/|=|<| =|<=|!=|><關鍵字>àmain|if|then|while|do<界符>à|(|)|;說明:產生式中<,>括起來的部分表示非終結符號。將以文法轉換成有窮自動機。 實現有窮自動機識別單詞符號2.實驗步驟根據詞法規則總結出每種單詞符號的結構特征設計每種單詞符號有窮自動機(狀態轉換圖)將幾種單詞符號的狀態轉換圖進行合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論