編譯原理第三章總結

編譯原理第三章(詞法分析)學習總結
  程序語言的單詞符號一般分爲以下五種:
   關鍵字,標識符,常熟。運算符,界符。
 輸入緩衝區、預處理子程序



(1)輸入源程序文本,放入輸入緩衝區中,詞法分析工作可在這個輸入緩衝區中工作


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


(3)剔除註釋行


(4)源程序的出錯列表打印


(5)將預處理好的子程序放到掃描緩衝區中
掃描緩衝區、掃描器


(1)掃描緩衝區
設兩個半區,可互補使用






設兩個指針
起點指針:指出正在識別單詞起點位置
搜索指針:向前搜索以尋找單詞終點


(2)掃描器:掃描緩衝區,直接進行單詞的識別
狀態轉換圖法


(3)狀態轉換圖的結構

   ①結點:代表狀態,用圓圈表示

   ②箭弧:狀態之間用箭弧連接

   ③箭弧上的標記:代表在射出節點下可能出現的字符或字符串
這節的重點就是正規表達式和有限自動機


首先有正規式和正規集的概念
若兩個正規式U和V所表示的正規集相同,則認爲二者等價,記爲:U = V
確定的有限自動機(DFA)(Deterministic Finite Automata)


非確定的有限自動機(NFA)
(Non-deterministic Finite Automata)


自動機不是指一臺實際的機器,而是一種數學模型(集合,函數,序列等),利用它模擬計算機識別的功能。


所謂確定性是指,f(s, a) = s’ 是單值函數。 對任何狀態s∈S,和輸入符號 a∈∑ , 
f(s, a) 唯一的確定下一個狀態
所謂有限性是指,S是一個有限的狀態集合,
並且∑是一個有限的輸入符號的字母表
用上述5條,來定義一個DFA,來完成識別一個序列是否被機器所接受
正規式與有限自動機的等價性


定理一:對於任何∑上NFA M都可構造一個∑上的正規式V,使得  L(V) = L(M) 


 
圖片展示了部分課後題。


    本章主要學習了詞法分析器的要求,詞法分析器的設計,狀態轉換圖的實現,重點是正規式與有限自動機,和他們之間的相互轉化。
而狀態等價的概念是兩個狀態都能夠在讀出某個字而到停在狀態。
DFA就是要將狀態集進行分割,分割一些不相交的子集,並進行消去。本章的內容我感覺比較抽象,不是很好理解。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章