編譯原理(第3版)

《編譯原理(第3版)》是2013年出版的圖書,作者是劉銘、徐蘭芳、駱婷。

內容簡介

本書根據高等學校“編譯原理”課程教學基本要求編寫。全書系統介紹了編譯程式的一般構造原理、基本設計方法和主要實現技術。內容包括:文法和語言基本知識、詞法分析程式的設計原理與構造方法、各種語法分析技術、語法制導翻譯技術與中間代碼生成、符號表的組織和管理、代碼最佳化、運行時存儲空間的組織與管理、目標代碼生成、並行編譯技術基本常識等。 本書系統性強,概念清晰,內容簡明通俗,每章配有本章學習導讀、本章小結、自測練習題和習題。附錄給出了自測練習題與習題參考答案及編譯程式實驗,本書還免費提供電子課件和實驗原始碼。

目錄結構

第1章 編譯概述

1.1 翻譯程式與編譯程式

1.2 編譯過程和編譯程式的基本結構

1.3 編譯程式的生成方法

1.4 編譯技術在軟體開發中的套用

本章小結

擴展閱讀

自測練習題1

習題1

第2章 文法和語言的基本知識

2.1 概述

2.2 字母表和符號串的基本概念

2.2.1 字母表和符號串

2.2.2 符號串的運算

2.3 文法和語言的形式定義

2.3.1 形式語言

2.3.2 文法的形式定義

2.3.3 語言的形式定義

2.3.4 規範推導和規範歸約

2.3.5 遞歸規則與文法的遞歸性

2.4 短語、直接短語和句柄

2.4.1 短語和直接短語

2.4.2 句柄

2.5 語法樹與文法的二義性

2.5.1 推導和語法樹

2.5.2 文法的二義性

2.5.3 文法二義性的消除

2.6 文法和語言的分類

2.7 有關文法的實用限制和變換

本章小結

擴展閱讀

自測練習題2

習題2

第3章 詞法分析與有窮自動機

3.1 詞法分析程式的功能

3.2 單詞符號及輸出單詞的形式

3.2.1 語言的單詞符號

3.2.2 詞法分析程式輸出單詞的形式

3.3 語言單詞符號的兩種定義方式

3.3.1 正規式與正規集

3.3.2 正規文法與正規式

3.4 正規式與有窮自動機

3.4.1 確定有窮自動機(DFA)

3.4.2 非確定有窮自動機(NFA)

3.4.3 由正規表達式R構造NFA

3.4.4 NFA確定化為DFA的方法

3.4.5 DFA的化簡

3.4.6 有窮自動機到正規式的轉換

3.5 正規文法與有窮自動機

3.5.1 右線性正規文法到有窮自動機的轉換方法

3.5.2 左線性正規文法到有窮自動機的轉換方法

3.5.3 有窮自動機到正規文法的轉換方法

3.6 詞法分析程式的編寫方法

本章小結

擴展閱讀

自測練習題3

習題3

第4章 語法分析

4.1 語法分析程式的功能

4.2 自上而下分析法

4.2.1 非確定的自上而下分析法的思想

4.2.2 文法的左遞歸性和回溯的消除

4.2.3 某些非LL(1)文法到LL(1)文法的改寫

4.2.4 遞歸下降分析法

4.2.5 預測分析法與預測分析表的構造

4.3 自下而上分析法的一般原理

4.4 算符優先分析法

4.4.1 方法概述

4.4.2 算符優先文法的定義

4.4.3 算符優先關係表的構造

4.4.4 算符優先分析算法的設計

4.4.5 優先函式的構造

4.4.6 算符優先分析法的局限性

4.5 LR分析法

4.5.1 LR分析器的工作原理和過程

4.5.2 LR(0)分析法

4.5.3 SLR(1)分析法

4.5.4 LR(1)分析法

4.5.5 LALR(1)分析法

4.5.6 LR分析法對二義性文法的套用

4.5.7 LR語法分析中的錯誤恢復技術

本章小結

擴展閱讀

自測練習題4

習題4

第5章 語法制導翻譯技術和中間代碼生成

5.1 概述

5.2 屬性文法

5.3 語法制導翻譯概述

5.4 中間語言

5.4.1 逆波蘭式

5.4.2 三元式和樹形表示

5.4.3 四元式和三地址代碼

5.5 自下而上語法制導翻譯

5.5.1 簡單算術表達式和賦值語句的翻譯

5.5.2 布爾表達式的翻譯

5.5.3 控制語句的翻譯

5.5.4 循環語句的翻譯

5.5.5 簡單說明語句的翻譯

5.5.6 含數組元素的賦值語句的翻譯

5.5.7 過程和函式調用語句的翻譯

5.6 遞歸下降語法制導的翻譯

本章小結

擴展閱讀

自測練習題5

習題5

第6章 符號表的組織與管理

6.1 符號表的作用

6.2 符號表的組織

6.3 符號表的建立和查找

本章小結

擴展閱讀

自測練習題 6

習題6

第7章 代碼最佳化

7.1 最佳化概述

7.2 局部最佳化

7.2.1 劃分基本塊的方法

7.2.2 基本塊的DAG表示

7.2.3 利用DAG進行基本塊的最佳化處理

7.3 循環最佳化

7.3.1 程式流圖與循環

7.3.2 循環查找

7.3.3 循環最佳化

7.4 窺孔最佳化

本章小結

擴展閱讀

自測練習題 7

習題7

第8章 運行時的存儲組織與管理

8.1 概述

8.2 靜態存儲分配

8.3 棧式存儲分配

8.3.1 簡單棧式存儲分配

8.3.2 嵌套過程的棧式存儲分配

8.4 堆式存儲分配

8.5 臨時變數的存儲分配

本章小結

擴展閱讀

自測練習題 8

習題8

第9章 目標代碼生成

9.1 概述

9.2 假想的計算機模型

9.3 簡單代碼生成器

9.3.1 待用信息與活躍信息

9.3.2 代碼生成算法

9.3.3 暫存器的分配

9.4 代碼生成器的自動生成技術

本章小結

擴展閱讀

自測練習題 9

習題9

第10章 並行編譯技術基本常識

10.1 並行編譯技術的引入

10.2 並行編譯系統的功能和結構

10.2.1 並行編譯系統的功能

10.2.2 並行編譯系統的結構

10.3 向量語言編譯技術

10.3.1 向量語法處理

10.3.2 向量結構最佳化

10.4 共享存儲器並行機並行編譯技術

10.4.1 預編譯

10.4.2 可再入的目標代碼

本章小結

習題10

附錄A 詞法分析程式生成器

A.1 詞法分析程式生成器LEX簡介

A.2 LEX輸入檔案的格式

A.3 正規表達式的LEX約定

A.4 LEX源程式中的規則部分

A.5 FLEX的命令選項

A.6 LEX程式示例

附錄B 語法分析程式生成器YACC

B.1 語法分析程式YACC簡介

B.2 YACC輸入檔案的格式

B.3 YACC各部分的書寫格式

B.3.1 定義部分

B.3.2 規則部分

B.3.3 輔助程式部分

B.4 YACC的內置名稱和定義機制

B.5 YACC源程式示例

附錄C 編譯程式實驗

C.1 詞法分析

C.1.1 實驗目的

C.1.2 實驗要求

C.1.3 詞法分析程式的算法思想

C.1.4 詞法分析程式的C語言程式框架

C.2 語法分析

C.2.1 實驗目的

C.2.2 實驗要求

C.2.3 語法分析程式的算法思想

C.2.4 語法分析程式的C語言程式框架

C.3 語義分析

C.3.1 實驗目的

C.3.2 實驗要求

C.3.3 語義分析程式的C語言程式框架

C.4 算符優先分析法

C.5 實驗實例

C.6 正規式轉換成自動機的圖形表示

C.6.1 實驗目的

C.6.2 實驗要求

C.6.3 參考設計思路

C.6.4 參考算法

附錄D 自測練習題與習題參考答案

參考文獻

相關詞條

熱門詞條

聯絡我們