要求嚴格實驗一詞法分析 設計性實驗

2022-09-25 11:48:03 字數 1983 閱讀 2712

該實驗性質為設計性實驗,要求大家認真對待,各個題目略有不同,以顯區別。

一、實驗目的

深入理解有限自動機及其應用

掌握根據語言的詞法規則構造識別其單詞的有限自動機的方法

基本掌握詞法分析程式的開發。

二、實驗環境

pc微機

dos作業系統或windows作業系統

turbo c程式整合環境或visual c++ 程式整合環境(具體語言不限)

三、實驗內容

題目一:

編制乙個讀單詞過程,從輸入的源程式中,識別出各個具有獨立意義的單詞,即基本保留字、識別符號、常數、運算子、分隔符五大類。並依次輸出各個單詞的內部編碼及單詞符號自身值。(遇到錯誤時可顯示「error」,然後跳過錯誤部分繼續顯示)(具體參照實驗指導中的要求)

題目二:

根據給出能夠識別某語言中各類單詞的dfa:

構造識別單詞的自動機

根據構成規則對程式語言的單詞按類構造出相應的狀態轉換圖

對各類單詞的狀態轉換圖合併,構成乙個能識別語言所有單詞的狀態轉換圖。合併步驟為:

(1) 將各類單詞的狀態轉換圖的初始狀態合併為乙個唯一的初態;

(2) 化簡調整狀態衝突和對衝突狀態重新編號;

(3) 如有必要,增加出錯狀態。

用資料中心法實現有限自動機,生成詞法分析程式。

注:狀態轉換表法又稱資料中心法,是把狀態轉換圖看作一種資料結構(狀態轉換表),由控制程式控制字元在其上執行,從而完成詞法分析。用轉換表的優點是程式短,但佔儲存空間多,直接轉向法的優缺點正好與此相反。

題目三:

參題目二的要求,用直接轉向法實現有限自動機,生成詞法分析程式

注:直接轉向法又稱程式中心法,是把狀態轉換圖看成乙個流程圖,從狀態轉換圖的初態開始,對它的每乙個狀態結點都編一段相應的程式。

題目四:

編制乙個能夠分析三種整數、識別符號和主要關鍵字的詞法分析器。

實驗要求

1根據以下的正規式,編制正規文法,畫出狀態圖

識別符號《字母》(《字母》|《數字字元》)*

十進位制整數 0 | (1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*

八進位制整數0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)*

十六進製制整數 0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)*

關鍵字if then else while do

2根據狀態圖,設計詞法分析函式int scan( ),完成以下功能:

1) 從鍵盤讀入資料,分析出乙個單詞。

2) 返回單詞種別(用整數表示),

3) 返回單詞屬性(不同的屬性可以放在不同的全域性變數中)。

3編寫測試程式,反覆呼叫函式scan( ),輸出單詞種別和屬性。

。以上四個題目內容要求可以根據自己的情況適當調整,但不宜過大改動。

為了區別於其他同學所寫的程式功能可以做如下一些調整:

a.題目要求寫成乙個完整詞法分析程式的話,你可以將之寫成乙個詞法分析函式,然後寫出測試函式以測試。反之亦可。

b.對於輸出方式的改變,可以自行決定是直接輸出到檔案中還是輸出到螢幕上。

c.同乙個問題可以設計成不同的資料結構來實現。

等等。四、實驗步驟

可參照以下步驟,注意要求不同,步驟可是不一樣的:

1根據狀態圖,設計詞法分析演算法

2採用c語言,設計函式scan( ),實現該演算法

3編制測試程式(主函式main)。

4除錯程式:輸入一組單詞,檢查輸出結果

包括實驗過程記錄:出錯次數、出錯嚴重程度、解決辦法摘要等資訊。

五、實驗結果

將測試過程展開即可

六、實驗體會

如:你在程式設計過程中如何設計資料結構等問題?遇到了哪些難題?你是怎麼克服的?你對你的程式的評價?你的收穫有哪些?

七、思考題回答

程式設計中哪些環節影響詞法分析的效率?如何提高效率?

實驗一詞法分析器

一實驗目的 1 通過本實驗加深對詞法分析程式的功能及實現方法的理解 2 使用flex實現詞法分析程式。二實驗內容 下面是簡單c語言的詞法 1.關鍵字 else if int return void while 所有的關鍵字都是保留字,並且必須是小寫。2.下面是專用符號 3.其他標記是id 和num ...

實驗一詞法分析器

一 實驗目的 1.掌握詞法分析的原理 2.設計乙個詞法分析程式,掌握程式語言中的各類單詞的詞法分析方法,加深對詞法分析原理的理解。3.熟悉保留字表等相關的資料結構與單詞的分類方法。4.掌握詞法分析器的設計與除錯。二 實驗要求 2.1根據編譯中的分詞原理,編寫乙個詞法分析程式 1 輸入 所給文法的源程...

綜合設計實驗 化學分析設計性實驗題目及要求

分析化學實驗設計性實驗題目及要求 一 設計性實驗題目 實驗1 胃舒平藥片中al2o3及mgo含量的測定 實驗2 雞蛋殼中鈣含量的測定 實驗3 膽礬中硫酸銅含量的測定 實驗4 果品總酸度的測定 二 設計性實驗的要求 1 通過查閱有關資料,運用所學知識經同組討論後設計實驗方案並提交教師審查,經教師同意後...