《高等學校教材計算機系列教材:編譯原理(第3版)》系統地介紹了編譯系統的結構、工作流程以及編譯程式的設計原理和實現技術。全書共11章,內容包括語言及文法的基本知識、詞法分析、語法分析、語義分析及中間代碼生成、符號表組織、運行時的存儲組織與分配、代碼最佳化、目標代碼生成以及面向對象語言的編譯技術等。《高等學校教材計算機系列教材:編譯原理(第3版)》文字簡潔易懂,內容循序漸進、深入淺出,便於自學。《高等學校教材計算機系列教材:編譯原理(第3版)》可作為大學計算機類本科專業的教材,也可作為計算機軟體科技人員的參考書。
基本介紹
- 書名:高等學校教材計算機系列教材:編譯原理
- 類型:計算機與網際網路
- 出版日期:2005年1月1日
- 語種:簡體中文
- ISBN:9787561218709
- 作者:蔣立源 康慕寧
- 出版社:西北工業大學出版社
- 頁數:390頁
- 開本:16
內容簡介,圖書目錄,
內容簡介
《高等學校教材計算機系列教材:編譯原理(第3版)》由西北工業大學出版社出版。
圖書目錄
第1章 緒論
1.1 編譯過程概述
1.2 編譯程式的邏輯結構
1.2.1 詞法分析程式
1.2.2 語法分析程式
1.2.3 語義分析程式
1.2.4 中間代碼生成
1.2.5 代碼最佳化程式
1.2.6 目標代碼生成程式
1.2.7 錯誤檢查和處理程式
1.2.8 信息表管理程式
1.3 編譯程式的組織
習題
第2章 前後文無關文法和語言
2.1 文法及語言的表示
2.2 文法和語言的定義
2.2.1 基本概念和術語
2.2.2 文法和語言的形式定義
2.3 句型的分析
2.3.1 規範推導和規範歸約
2.3.2 語法樹和二義性
2.3.3 短語和句柄
2.4 文法的化簡和改造
2.4.1 無用符號和無用產生式的刪除
2.4.2 ε—產生式的消除
2.4.3 單產生式的消除
2.5 文法和語言的Chomsky分類
習題
第3章 詞法分析及詞法分析程式
3.1 設計掃描器時應考慮的幾個問題
3.1.1 詞法分析階段的必要性
3.1.2 單詞符號的內部表示
3.1.3 識別標識符的若干約定和策略
3.1.4 源程式的輸入及預處理
3.2 正規文法和狀態轉換圖
3.2.1 由正規文法構造狀態轉換圖
3.2.2 狀態轉換圖的一種實現——狀態矩陣法
3.3 有限自動機
3.3.1 確定的有限自動機
3.3.2 非確定的有限自動機
3.3.3 NFA與DFA的等價性
3.3.4 具有ε動作的FA
3.3.5 具有ε動作的NFA的確定化——子集法
3.3.6 DFA狀態數的最小化
3.4 正規表達式與正規集
3.4.1 正規表達式與正規集的定義
3.4.2 由正規文法構造相應的正規式
3.4.3 由正規式構造FA——Thompson法
3.5 詞法分析程式的實現
3.5.1 詞法分析程式的編寫
3.5.2 詞法分析程式的自動生成
習題
上機實習題
第4章 語法分析和語法分析程式
4.1 自頂向下的語法分析
4.1.1 消除文法的左遞歸
4.1.2 回溯的消除及LL(1)文法
4.1.3 遞歸下降分析法
4.1.4 預測分析法
4.1.5 某些非LL(1)文法的改造
4.2 自底向上的語法分析
4.2.1 簡單優先分析法
4.2.2 算符優先分析法
4.2.3 優先函式
4.2.4 LR分析法
習題
上機實習題
第5章 語法制導翻譯及中間代碼生成
5.1 引言
5.2 屬性文法與屬性翻譯文法
5.2.1 語義屬性與屬性文法
5.2.2 屬性翻譯文法
5.3 常見中間語言概述
5.3.1 逆波蘭表示
5.3.2 四元式和三元式
5.3.3 其它表示法
5.4 簡單算術表達式和賦值語句的翻譯
5.5 布爾表達式的翻譯
5.6 程式流程控制語句的翻譯
5.6.1 常見控制結構的翻譯
5.6.2 FOR循環語句的翻譯
5.6.3 語句標號及GOTO語句的翻譯
5.6.4 情況語句的翻譯
5.7 含數組元素的算術表達式及賦值語句的翻譯
5.7.1 下標變數地址的計算
5.7.2 含有下標變數的賦值語句的翻譯
5.8 過程說明和過程調用的翻譯
5.8.1 過程說明的翻譯
5.8.2 實參和形參間的信息傳遞
5.8.3 過程語句的翻譯
5.8.4 關於形實結合的進一步討論
5.9 說明語句的翻譯
5.9.1 類型說明(變數及數組定義)語句的翻譯
5.9.2 數據類型定義語句的翻譯
5.10 語法分析程式的自動生成工具
5.10.1 LALR(1)分析器的自動生成工具——YACC和OCCS
5.10.2 LL(1)語法分析程式自動生成工具LLama簡介
5.10.3 LLGen簡介
5.10.4 GCC概述
習題
上機實習題
第6章 符號表
6.1 符號表的組織
6.2 分程式結構語言符號表的建立
6.3 非分程式結構語言符號表的建立
習題
第7章 運行時的存儲組織與分配
7.1 存儲組織
7.1.1 運行時記憶體的劃分
7.1.2 活動記錄
7.2 運行時的分配策略
7.2.1 靜態分配
7.2.2 棧式分配
7.2.3 堆式分配
習題
第8章 代碼最佳化
8.1 語法制導翻譯階段的最佳化
8.2 線性窺孔最佳化
8.2.1 強度削弱
8.2.2 常數合併和常數傳播
8.2.3 無用變數與無用代碼的刪除
8.2.4 窺孔最佳化實例
8.3 基於結構信息的最佳化
8.3.1 基本塊及其最佳化
8.3.2 數據流分析方法
8.3.3 循環最佳化
習題
上機實習題
第9章 目標代碼生成
9.1 目標代碼的形式
9.2 一種假想的計算機模型
9.3 一種代碼生成程式的雛型
9.3.1 待用信息
9.3.2 暫存器描述符與地址描述符
9.3.3 生成目標代碼的算法
9.4 DAG的代碼生成
9.5 全局暫存器分配
習題
上機實習題
第10章 查錯與改錯
10.1 語法錯誤的校正
10.1.1 單詞錯誤的校正
10.1.2 自頂向下分析中的錯誤校正
10.1.3 自底向上分析中的錯誤校正
10.2 語義錯誤的校正
10.2.1 遏止株連信息
10.2.2 遏止重複信息
習題
第11章 面向對象語言的編譯技術
11.1 引言
11.1.1 面向對象程式設計語言
11.1.2 面向對象語言編譯器的一些特點
11.2 類和對象的基本特徵
11.3 類的基本定義
11.3.1 基本類聲明的語法定義
11.3.2 基本類聲明的抽象語法樹表示
11.3.3 基本類聲明的處理
11.4 OOPL中重載和繼承的處理
11.4.1 面向對象程式設計語言中的重載和繼承
11.4.2 文法的擴展
11.4.3 重載的處理
11.4.4 繼承的處理
習題
參考文獻
1.1 編譯過程概述
1.2 編譯程式的邏輯結構
1.2.1 詞法分析程式
1.2.2 語法分析程式
1.2.3 語義分析程式
1.2.4 中間代碼生成
1.2.5 代碼最佳化程式
1.2.6 目標代碼生成程式
1.2.7 錯誤檢查和處理程式
1.2.8 信息表管理程式
1.3 編譯程式的組織
習題
第2章 前後文無關文法和語言
2.1 文法及語言的表示
2.2 文法和語言的定義
2.2.1 基本概念和術語
2.2.2 文法和語言的形式定義
2.3 句型的分析
2.3.1 規範推導和規範歸約
2.3.2 語法樹和二義性
2.3.3 短語和句柄
2.4 文法的化簡和改造
2.4.1 無用符號和無用產生式的刪除
2.4.2 ε—產生式的消除
2.4.3 單產生式的消除
2.5 文法和語言的Chomsky分類
習題
第3章 詞法分析及詞法分析程式
3.1 設計掃描器時應考慮的幾個問題
3.1.1 詞法分析階段的必要性
3.1.2 單詞符號的內部表示
3.1.3 識別標識符的若干約定和策略
3.1.4 源程式的輸入及預處理
3.2 正規文法和狀態轉換圖
3.2.1 由正規文法構造狀態轉換圖
3.2.2 狀態轉換圖的一種實現——狀態矩陣法
3.3 有限自動機
3.3.1 確定的有限自動機
3.3.2 非確定的有限自動機
3.3.3 NFA與DFA的等價性
3.3.4 具有ε動作的FA
3.3.5 具有ε動作的NFA的確定化——子集法
3.3.6 DFA狀態數的最小化
3.4 正規表達式與正規集
3.4.1 正規表達式與正規集的定義
3.4.2 由正規文法構造相應的正規式
3.4.3 由正規式構造FA——Thompson法
3.5 詞法分析程式的實現
3.5.1 詞法分析程式的編寫
3.5.2 詞法分析程式的自動生成
習題
上機實習題
第4章 語法分析和語法分析程式
4.1 自頂向下的語法分析
4.1.1 消除文法的左遞歸
4.1.2 回溯的消除及LL(1)文法
4.1.3 遞歸下降分析法
4.1.4 預測分析法
4.1.5 某些非LL(1)文法的改造
4.2 自底向上的語法分析
4.2.1 簡單優先分析法
4.2.2 算符優先分析法
4.2.3 優先函式
4.2.4 LR分析法
習題
上機實習題
第5章 語法制導翻譯及中間代碼生成
5.1 引言
5.2 屬性文法與屬性翻譯文法
5.2.1 語義屬性與屬性文法
5.2.2 屬性翻譯文法
5.3 常見中間語言概述
5.3.1 逆波蘭表示
5.3.2 四元式和三元式
5.3.3 其它表示法
5.4 簡單算術表達式和賦值語句的翻譯
5.5 布爾表達式的翻譯
5.6 程式流程控制語句的翻譯
5.6.1 常見控制結構的翻譯
5.6.2 FOR循環語句的翻譯
5.6.3 語句標號及GOTO語句的翻譯
5.6.4 情況語句的翻譯
5.7 含數組元素的算術表達式及賦值語句的翻譯
5.7.1 下標變數地址的計算
5.7.2 含有下標變數的賦值語句的翻譯
5.8 過程說明和過程調用的翻譯
5.8.1 過程說明的翻譯
5.8.2 實參和形參間的信息傳遞
5.8.3 過程語句的翻譯
5.8.4 關於形實結合的進一步討論
5.9 說明語句的翻譯
5.9.1 類型說明(變數及數組定義)語句的翻譯
5.9.2 數據類型定義語句的翻譯
5.10 語法分析程式的自動生成工具
5.10.1 LALR(1)分析器的自動生成工具——YACC和OCCS
5.10.2 LL(1)語法分析程式自動生成工具LLama簡介
5.10.3 LLGen簡介
5.10.4 GCC概述
習題
上機實習題
第6章 符號表
6.1 符號表的組織
6.2 分程式結構語言符號表的建立
6.3 非分程式結構語言符號表的建立
習題
第7章 運行時的存儲組織與分配
7.1 存儲組織
7.1.1 運行時記憶體的劃分
7.1.2 活動記錄
7.2 運行時的分配策略
7.2.1 靜態分配
7.2.2 棧式分配
7.2.3 堆式分配
習題
第8章 代碼最佳化
8.1 語法制導翻譯階段的最佳化
8.2 線性窺孔最佳化
8.2.1 強度削弱
8.2.2 常數合併和常數傳播
8.2.3 無用變數與無用代碼的刪除
8.2.4 窺孔最佳化實例
8.3 基於結構信息的最佳化
8.3.1 基本塊及其最佳化
8.3.2 數據流分析方法
8.3.3 循環最佳化
習題
上機實習題
第9章 目標代碼生成
9.1 目標代碼的形式
9.2 一種假想的計算機模型
9.3 一種代碼生成程式的雛型
9.3.1 待用信息
9.3.2 暫存器描述符與地址描述符
9.3.3 生成目標代碼的算法
9.4 DAG的代碼生成
9.5 全局暫存器分配
習題
上機實習題
第10章 查錯與改錯
10.1 語法錯誤的校正
10.1.1 單詞錯誤的校正
10.1.2 自頂向下分析中的錯誤校正
10.1.3 自底向上分析中的錯誤校正
10.2 語義錯誤的校正
10.2.1 遏止株連信息
10.2.2 遏止重複信息
習題
第11章 面向對象語言的編譯技術
11.1 引言
11.1.1 面向對象程式設計語言
11.1.2 面向對象語言編譯器的一些特點
11.2 類和對象的基本特徵
11.3 類的基本定義
11.3.1 基本類聲明的語法定義
11.3.2 基本類聲明的抽象語法樹表示
11.3.3 基本類聲明的處理
11.4 OOPL中重載和繼承的處理
11.4.1 面向對象程式設計語言中的重載和繼承
11.4.2 文法的擴展
11.4.3 重載的處理
11.4.4 繼承的處理
習題
參考文獻