第三章 詞法分析

2021-08-18 07:14:36 字數 1842 閱讀 3544

詞法分析的主要目的是將輸入的字串輸出為乙個個單獨的單詞符號。即從左至右逐個字元的對源程式進行掃瞄,產生乙個個的單詞符號,把作為字串的源程式改造成為由單詞符號串組成的程式。實現這種過程需要借助詞法分析器,其輸入時源程式,輸出為單詞符號,其實現過程如下:

單詞的種類基本字(保留字,關鍵字)

由程式語言定義的具有固定意義的識別符號。

使用者不能用來表示變數名,函式名等識別符號

例:c語言中的「

if」 「

else

」 「while

」 …識別符號

使用者使用的,用來表示各種名字,變數名,函式名等

常數

整型、實型、邏輯、字元…

例:1000

,3.14

,true

,「abcd

運算子+、

-、*、

/ …界符

,;

()…語法分析器的內部設計執行方式為:

輸入緩衝區、預處理子程式:輸入源程式文字,放入輸入緩衝區中,詞法分析工作可在這個輸入緩衝區中工作;

剔除無用的空白,跳格(tab),回車,換行等編輯性字元;若空白符號為單詞符號的界符,就將若干空白和並為1個;

剔除注釋行,比如/*…

*/;源程式的出錯列表列印;

將預處理好的子程式放到掃瞄緩衝區中。

掃瞄緩衝區、掃瞄器:

掃瞄緩衝區:

設兩個半區,可互補使用;

設兩個指標:起點指標:指出正在識別單詞起點位置;搜尋指標:向前搜尋以尋找單詞終點。掃瞄器:掃瞄緩衝區,直接進行單詞的識別。

單詞符號的識別方法主要分為三種,分別為超前搜尋法、直接分析法和狀態轉換圖法,其中狀態轉換圖法是學習的重點。為了更好地使用狀態裝換圖構造詞法分析程式,為了討論詞法分析程式的自動生成,需要將上述轉換圖的概念稍加形式化。詞法分析器需要識別語言中具有不同特徵的字,我們可以把具有相同特徵的字放在一起組成乙個集合,即所謂的正規集然後使用一種形式化的方法來表示正規集,即所謂的正規式。正規式是描述單詞結構的一種形式;正規集是該類單詞的全集。若兩個正規式u和

v所表示的正規集相同,則認為二者等價。我們把狀態轉換圖再形式化一下及所謂的有限自動機有兩種:確定的有限自動機(

dfa)(

deterministic finite automata)

和非確定的有限自動機(

nfa)(

non-deterministic finite automata)

。對於確定的有限自動機來說,所謂的自動機不是指一台實際的機器,而是一種數學模型(集合,函式,序列…),利用它模擬計算機識別的功能;所謂確定性是指,f(s, a) = s

』 是單值函式。對任何狀態s∈

s,和輸入符號

a∈∑ ,

f(s, a)

唯一的確定下乙個狀態;所謂有限性是指,

s是乙個有限的狀態集合,並且∑是乙個有限的輸入符號的字母表。用上述條件,來定義乙個

dfa,來完成識別乙個序列是否被機器所接受。確定的有限自動機是非確定的有限自動機的乙個特例。

dfa的設計流程:根據題意,得到相應的正規式;由以上正規式構造相應的

nfa為;用子集法對

m』進行確定化;對

m進行化簡。

編譯原理第三章 詞法分析

一 詞法分析器 1 功能 輸入源程式,輸出單詞符號 2 單詞符號常常用二元式來表示 單詞種別,單詞符號的屬性 1 單詞種別 通常用整數編碼來表示 一字一種 關鍵字,運算子,界符 按型別 常數 統歸一種 識別符號 2 單詞符號的屬性值 反映單詞特性或特徵的值 3 詞法分析器運作過程 詞法分析器設計 輸...

編譯原理 第三章 詞法分析

一,詞法分析器的作用 詞法分析是編譯的第一階段。詞法分析器主要任務是讀入源程式的輸入字元 將他們組成詞素,生成並輸出乙個詞法單元序列,每個詞法單元對應於乙個詞素。分析部分 詞法分析 語法分析 簡化編譯器設計 提高編譯器效率 增強編譯器可移植性 1 詞法單元 詞法單元名和可選的屬性值組成。關鍵字 操作...

編譯原理第三章詞法分析總結

這一章我們將從詞法分析器 正規表示式與有限自動機以及語法分析器的自動產生三方面了解詞法分析,但我理解的這張的重點是正規表示式與有限自動機。首先我們來了解一下詞法分析器是什麼 它是一組把輸入的源程式轉換成單詞符號的程式,而語法分析器的構造方法包括兩方面,一方面是根據詞法直接程式設計序即有限自動機的手工...