編譯原理 詞法分析

2022-11-24 12:00:03 字數 1267 閱讀 8580

《編譯原理》課程

實驗報告

一. 實驗序號:《編譯原理》第一次實驗

二. 實驗題目:詞法分析

三. 實驗日期: 2012.10.20 至2012.11.3

四. 實驗環境(作業系統,開發語言)

作業系統:windows

開發語言:c++

五. 實驗要求

1) 將識別符號的詞法改為「以大寫字母或小寫字母開頭,後面可以跟大寫字母或小寫字母或數字或下劃線」。

2) 將《條件》中的表示相等關係的單詞「=」改為「= =」

3) 增加字串常量的識別。

4) 將原來無小數的數改為可以有小數的數

六. 實驗步驟

1) 用pl/0語言編寫測試用例源程式。用c++語言編寫詞法分析程式。

2) 執行詞法分析程式,讀入pl/0語言的測試用例源程式,進行詞法分析。

3) 設立斷點,單步執行詞法分析程式,依次單個輸出單詞。分析和理解詞法分析程式,解釋詞法分析程式中的資料和變數變化的原因和輸出結果。

4) 根據上述「實驗要求」修改詞法分析程式,同時也應修改pl/0語言測試用例源程式中的相應的單詞。

因為整個程式核心讀取函式是getaword()函式,所以根據實驗要求我進行了如下修改:

1. 將識別符號的詞法改為「以大寫字母或小寫字母開頭,後面可以跟大寫字母或小寫字母或數字或下劃線」。

if(cacharacter>='a' && cacharacter<='z'

cacharacter>='a' && cacharacter<='z')

//如果當前字元是小寫的字母或大寫字母

增加了讀入大寫字母的功能

don=n_int+n_float;//數的值

如果不是0..9或小數點則數單詞結束

5) 執行修改後的詞法分析程式,讀入修改後的pl/0語言測試用例源程式,進行詞法分析。

七. 實驗結果(測試用例源程式,執行結果截圖)

八. 實驗體會(詞法分析程式修改的地方,解決問題的方法、心得體會等)

其實剛開始對pl/0編譯程式不是很清楚,只知道理論的知識,對這個實驗無從下手,老師給了我們部分**並且給我們講解了核心原理後,我對pl/0的詞法分析有了大概的認識,但是當自己去編譯程式時,發現了許多自己平時沒有注意到的細節知識,在編譯過程中,往往乙個極其微小的錯誤會將我困惑很久, 但是當我將整個程式編譯完成時,卻是有說不出的喜悅。沒有付出哪有回報。

通過這次閱讀程式,使我知道了規範的**是怎樣寫的,而且讀**也是理解別人思路和學習的過程,這次實驗使我收穫很大,不僅僅是知識還磨練了我的意志增強了我的信心。

編譯原理詞法分析實驗報告

實驗1 詞法分析實驗報告 一 實驗目的 除錯並完成乙個詞法分析程式,加深對詞法分析原理的理解。二 實驗要求 1 待分析的簡單語言的詞法 1 關鍵字 begin if then while do end 所有關鍵字都是小寫。2 運算子和界符 3 其他單詞是識別符號 id 和整型常數 num 通過以下正...

編譯原理詞法分析實驗報告

實驗一詞法分析器設計 實驗目的 1 熟悉詞法分析的基本原理,詞法分析的過程和詞法分析中要注意的問題。2 複習高階語言,進一步加強用高階語言來解決實際問題的能力。3 通過完成詞法分析程式,了解詞法分析的過程。實驗內容 用c語言編寫乙個pl 0詞法分析器,為語法語義分析提供單詞,使之能把輸入的字串形式的...

編譯原理詞法分析器實驗報告

北華航天工業學院 編譯原理 課程實驗報告 課程實驗題目 詞法分析器實驗 作者所在系部 電腦科學與工程系 作者所在專業 電腦科學與技術 作者所在班級 b08512 作者學號18 作者姓名 李桂丁 指導教師姓名 李建義 完成時間 2010年3月26日 一 實驗目的 了解詞法分析程式的兩種設計方法 1.根...