編譯原理(第二版)

《編譯原理(第二版)》定價為45元,ISBN為9787302089797。

基本信息

圖書簡介

本書以Alfred V.Aho和Jeffrey D.Ullman的“Compilers Principles, Techniques, and Tools”經典教材為參考,對典型編譯原理進行詳細闡述,對成熟編譯工具的機理給予剖析,對先進編譯技術有重點的進行介紹,並且強調理論與實踐結合,選擇了Wirth的一個高級語言編寫的編譯程式作為案例,提供學生一個看得見摸的著的實體去剖析,並可在其基礎上進行實踐。多年來的教學經驗證明,其內容和架構都還不錯,本書前一版被不少院校選用。新版擴展了編譯程式的構造技術的內容,專門對可重定向編譯技術和方法,包括GCC進行了介紹;此外,還對面向對象語言的編譯技術以及利用面向對象方法構造編譯程式的基本方法進行了討論。

目錄

第1章引論

1.1什麼是編譯程式

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

1.2.1編譯過程概述

1.2.2編譯程式的結構

1.2.3編譯階段的組合

1.3解釋程式和一些軟體工具

1.3.1解釋程式

1.3.2處理源程式的軟體工具

1.4程式設計語言范型

練習第2章PL/0編程程式的實現

2.1PL/0語言描述

2.1.1PL/0語言的語漢描述圖

2.1.2PL/0語言文法的EBNF表示

2.2PL/0編譯程式的結構

2.3PL/0編譯程式的詞法分析

2.4PL/0編譯程式的語法語義分析

2.5PL/0編譯程式的目標代碼結構和代碼生成

2.6PL/0編譯程式的語法錯誤處理

2.7PL/0編譯程式的目標代碼解釋執行時的存儲分配

練習第3章文法和語言

3.1文法的直觀概念

3.2符號和符號串

3.3文法和語言的形式定義

3.4文法的類型

3.5上下文無關文法及其語法樹

3.6句型的分析

3.6.1自上而下的分析方法

3.6.2自下而上的分析方法

3.6.3句型分析的有關問題

3.7有關文法實用中的一些說明

3.7.1有關文法的實用限制

3.7.2上下文無關文法中的規則

3.8典型例題解答

練習第4章詞法分析

4.1詞法分析程式的設計

4.1.1詞法分析程式與語法分析程式的接口方式

4.1.2詞法分析程式的輸出

4.1.3將詞法分析工作分離的考慮

4.2單詞的描述工具

4.2.1正規文法

4.2.2正規式

4.2.3正規文法和正規式的等性

4.3有窮自動機

4.3.1確定的有窮自動機(DFA)

4.3.2不確定的有窮自動機(NFA)

4.3.3NFA轉換為等價的DFA

4.3.4確定有窮自動機的化簡

4.4正規式和有窮自動機的等價性

4.5正規文法和有窮自動機的等價性

4.6詞法分析程式的自動構造工具

4.7典型例題及解答

練習第5章自頂向下語法分析方法

5.1確定的自頂向下分析思想

5.2LL(1)文法的判別

5.3某些非LL(1)文法到LL(1)文法的等價變換

5.4不確定的自頂向下分析思想

5.5確定的自頂向下分析方法

5.5.1遞歸子程式法

5.5.2預測分析方法

5.6典型例題及解答

練習第6章自底向上優先分析

6.1自底向上優先分析概述

6.2簡單優先分析法

6.2.1優先關係

6.2.2簡單優先文法的定義

6.2.3簡單優先分析法的操作步驟

6.3算符優先分析法

6.3.1直觀算符優先分析法

6.3.2算符優先文法的定義

6.3.3算符優先關係表的構造

6.3.4算符優先分析算法

6.3.5優先函式

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

6.4典型例題及解答

練習第7章LR分析

7.1LR分析概述

7.2LR(0)分析

7.2.1可歸前綴和子前綴

7.2.2識別活前綴的有限自動機

7.2.3活前綴及其可歸前綴的一般計算方法

7.2.4LR(0)項目集規範族的構造

7.3SLR(1)分析

7.4LR(1)分析

7.4.1LR(1)項目集族的構造

7.4.2LR(1)分析表的構造

7.5LALR(1)分析

7.6二義性文法在LR分析中的套用

7.7語法分析程式的自動構造工具YACC

7.8典型例題及解答

練習第8章語法制導翻譯和中間代碼生成

8.1屬性文法

8.2語法制導翻譯概論

8.2.1計算語義規則

8.2.2S-屬性方法和自下而上翻譯

8.2.3L-屬性文法在自上而下分析中的實現

8.2.4L-屬性文法在自下而上分析中的實現

8.3中間代碼的形式

8.3.1逆波壯大記號

8.3.2三元式和樹表表示

8.3.3四元式

8.4簡單賦值語句的翻譯

8.5布爾表達式的翻譯

8.5.1布爾表達式的翻譯方法

8.5.2控制語句中布爾表達式的翻譯

8.6控制結構的翻譯

8.6.1條件轉移

8.6.2開關語句

8.6.3for循環語句

8.6.4出口語句

8.6.5goto語句

8.6.6過程調用的四元式產生

8.7說明語句的翻譯

8.7.1簡單說明語句的翻譯

8.7.2過程中的說明

8.8數組和結構的翻譯

8.8.1數組說明和數組元素的引用

8.8.2結構(記錄)說明和引用的翻譯

練習

第9章符號表

9.1符號表的作用和地位

9.2符號的主要屬性及作用

9.3符號表的組織

9.3.1符號表的總體組織

9.3.2符號表項的排列

9.3.3關鍵字域的組織

9.3.4其他域的組織

9.3.5下堆鏈域的組織

9.4符號表的管理

9.4.1符號表的初始化

9.4.2符號的登錄

9.4.3符號的查找

9.4.4符號表的分程式結構層次的管理

第10章目標程式運行時的存儲組織

10.1數據空間的三種不同使用方法和管理方法

10.1.1靜態存儲分配

10.1.2動態存儲分配

10.1.3棧式動態存儲分配

10.1.4堆式動態存儲分配

10.2棧式存儲分配的實現

10.2.1簡單的棧式存儲分配的實現

10.2.2嵌套過程語言的棧式實現

10.2.3分程式結構的存儲管理

10.3參數傳遞

10.3.1傳值

10.3.2傳地址

10.3.3過程參數

10.4過程調用、過程進入和過程返回

練習

第11章代碼最佳化

11.1最佳化技術簡介

11.2局部最佳化

11.2.1基本塊的劃分

11.2.2基本塊的變換

11.2.3基本塊的有向圖DAG(DirectedAcyclicGraph)表示

11.2.4DAG的套用

11.3控制流分析和循環最佳化

11.3.1程式流圖

11.3.2循環的查找

11.3.3循環最佳化

11.4數據流的分析與全局最佳化

11.4.1一些主要的概念

11.4.2數據流言程的一般形式

11.4.3到達-定值數據流方程

11.4.4可用表達式及其數據流方程

11.4.5活躍變數數據流方程

11.4.6複寫傳播

練習

第12章代碼生成

12.1代碼生成概述

12.1.1代碼生成程式在編譯系統中的位置

12.1.2設計代碼生成程式的基本問題

12.2一個簡單的代碼生成程式

12.2.1計算機模型

12.2.2待用信息鍊表法

12.2.3代碼生成算法

12.3幾種常用的代碼生成程式的開發方法

12.3.1解釋性代碼生成法

12.3.2模式匹配代碼生成法

12.3.3表驅動代碼生成法

12.4全局暫存器分配(圖著色法)

12.4.1概述

12.4.2圖著色暫存器分配法的相關技術

12.4.3示例

12.5代碼生成程式的自動化構造

12.5.1模式匹配與動態規劃

12.5.2基於語法制導的代碼生成程式自動構造技術

12.5.3基於語義制導的代碼生成程式自動構造技術

練習

第13章編譯程式的構造

13.1編譯程式的書寫

13.1.1編譯程式的書寫語言與T型圖

13.1.2編譯程式的自展技術

13.2可重定向編譯程式

13.2.1概述

13.2.2支持可重定向編譯的關鍵技術

13.2.3常用的可重定編譯程式

13.3GCC的剖析

13.3.1GCC的總體結構

13.3.2GCC的中間表示

13.3.3GCC的機器描述

13.3.4GCC的代碼生成與機器描述的接口

13.4GCC的定製

13.4.1GCC的剪裁

13.4.2GCC編譯程式的安裝與配置

13.5GCC的最佳化

13.5.1概述

13.5.2窺孔最佳化

13.5.3基於機器描述的窺孔最佳化

13.5.4修改GCC源程式的窺孔最佳化

練習

第14章面向對象語言的編譯

14.1面向對象語言的基本概念

14.2面向對象語言語法結構及語義處理的特徵

14.2.1面向對象語言的類的語法結構及語義

14.2.2面向對象語言的有效類、延遲類及延遲成員

14.2.3面向對象語言的類屬類

14.2.4面向對象語言的繼承類

14.3多態實例變數、多態引用的類型檢查及綁定

14.3.1實例變數和多態引用

14.3.2靜態類型檢查及動態類型檢查

14.3.3對象的創建

14.4面向對象操作的語義

14.4.1類名的屬性構造

14.4.2類名的屬性及其結構

14.5類成員名的屬性及其結構

14.5.1類名的屬性及其結構

14.5.2類成員名的屬性及其結構

14.6對象的存儲管理及廢棄單元回收

14.6.1對象的三種存儲區組織管理方式

14.6.2靜態模型和棧式模型廢棄單元的回收

14.6.3堆式模型廢棄單元的回收

練習

第15章編譯程式的面向對象構造

15.1編譯程式面向對象構造的基本概念

15.1.1編譯程式的需求

15.1.2編譯程式的分解

15.1.3類的構造層次

15.1.4類的特性定義

15.2構造編譯程式的面向對象類庫

15.2.1對傳統編譯程式構造中軟體復用的分析

15.2.2面向對象編譯類庫的地位

15.2.3語言編譯論的面向對象論域分析

15.3面向對象編譯程式的符號表構造

練習

附錄APL、0編譯程式文本

A.1Pascal版本

A.2C版本

參考文獻

相關詞條

熱門詞條

聯絡我們