編譯原理 部分名詞解釋
阿新 • • 發佈:2018-06-15
語義分析 導出 計算機實現 存在 多重 == 程序 針對 沒有 翻譯程序:是指這樣的程序能夠把某一種語言程序(源語言程序)轉化成另一種語言程序(目標語言),而後者與前者在邏輯上是等價的
編譯程序:源語言是諸如Java、C、Ada、Pascal這樣的“高級語言”,目標語言是諸如匯編語言的“低級語言”,這樣的一個翻譯程序就稱為編譯程序
編譯程序的工作一般可以劃分為5個階段:
詞法分析、語法分許、語義分析及中間代碼的生成、優化、目標代碼生成
編譯程序各個階段之間的關系:
下一階段將上一階段的結果進行處理
程序語言主要由語法、語義兩方面定義 高級程序語言是用來描述算法和計算機實現的雙重目的 語法分析樹(語法樹)是對句子的描述 文法描述語言的語法規則 上下文無關文法G包括四個組成部分:
終極符號,非終結符號(大寫符號),開始符號,產生式
箭頭“→”讀作“定義為”,直豎“|”讀作“或”,它們都是源語言符號 句型:由終結符號和非終結符號組成的文法 句子:僅含終極符號的句型 語言:由文法產生的所有句子組成 最左推導是指:對於任何a ==> b,都對a的最左非終結符號進行叠代 如果一個文法存在一個句子對應兩棵不同的語法樹,則稱這個文法是二義的 二義文法:
1、最左端是一個非終結符號
2、左邊的個數≤右邊的個數
確定有限自動機(DFA),非確定有限自動機(NFA) 一個LEX源程序主要包括兩部分
1、正規定義式
2、識別規則
閉包:由集合中的元素組成的無數多個串(其實跟循環差不多) 消除左遞歸的方法:
eg:P ==> Pα|β
---------
P ==> βP‘
P‘ ==> αP’|e
短語:語法樹中任意子樹節點所組成符號串 直接短語:只有兩代的端末 句柄:由最左推導的出來的直接短語 規範規約:針對α的最左規約,即就是最右推導的逆過程 規範規約,即就是由上一步推導出下一步的過程、式子;而句柄,指的是該式子、公式推導符號的推導結果 “移進-規約”過程由4個列組成
步驟、符號串、輸入串、動作
算符優先文法的判定:
只要優先關系表中沒有多重入口
算符優先的分析過程 等價於 移進-歸約 附註語法樹,帶註釋的語法樹
詞法分析、語法分許、語義分析及中間代碼的生成、優化、目標代碼生成
編譯程序各個階段之間的關系:
下一階段將上一階段的結果進行處理
程序語言主要由語法、語義兩方面定義 高級程序語言是用來描述算法和計算機實現的雙重目的 語法分析樹(語法樹)是對句子的描述 文法描述語言的語法規則 上下文無關文法G包括四個組成部分:
終極符號,非終結符號(大寫符號),開始符號,產生式
箭頭“→”讀作“定義為”,直豎“|”讀作“或”,它們都是源語言符號 句型:由終結符號和非終結符號組成的文法 句子:僅含終極符號的句型 語言:由文法產生的所有句子組成 最左推導是指:對於任何a ==> b,都對a的最左非終結符號進行叠代 如果一個文法存在一個句子對應兩棵不同的語法樹,則稱這個文法是二義的 二義文法:
1、最左端是一個非終結符號
2、左邊的個數≤右邊的個數
確定有限自動機(DFA),非確定有限自動機(NFA) 一個LEX源程序主要包括兩部分
1、正規定義式
2、識別規則
閉包:由集合中的元素組成的無數多個串(其實跟循環差不多) 消除左遞歸的方法:
eg:P ==> Pα|β
---------
P ==> βP‘
P‘ ==> αP’|e
短語:語法樹中任意子樹節點所組成符號串 直接短語:只有兩代的端末 句柄:由最左推導的出來的直接短語 規範規約:針對α的最左規約,即就是最右推導的逆過程 規範規約,即就是由上一步推導出下一步的過程、式子;而句柄,指的是該式子、公式推導符號的推導結果 “移進-規約”過程由4個列組成
步驟、符號串、輸入串、動作
算符優先文法的判定:
只要優先關系表中沒有多重入口
算符優先的分析過程 等價於 移進-歸約 附註語法樹,帶註釋的語法樹
編譯原理 部分名詞解釋