注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計程序設計綜合編譯器設計(第2版)

編譯器設計(第2版)

編譯器設計(第2版)

定 價:¥99.00

作 者: (美)Keith D. Cooper,(美)Linda Torczon 著 郭旭 譯
出版社: 人民郵電出版社
叢編項:
標 簽: 計算機/網絡 硬件 外部設備 維修

購買這本書可以去


ISBN: 9787115301949 出版時間: 2013-01-01 包裝: 平裝
開本: 16開 頁數(shù): 578 字數(shù):  

內容簡介

  1952年第一個編譯器誕生,至今已經過去了半個多世紀,編譯器的發(fā)展日臻成熟,關于編譯器設計的著作也出版了不少,但既關注設計細節(jié),又具備大局觀的經典之作鳳毛麟角,《編譯器設計(第2版)》即是這樣一本難得的佳作。兩位作者多年來一直奮戰(zhàn)在研發(fā)和教學一線,理論和實踐上的豐厚經驗都凝結在了《編譯器設計(第2版)》中。書中論述了一系列構建現(xiàn)代編譯器必需的核心技術,分析了編譯器設計者需要面對的諸多問題,闡釋了解決這些問題所用到的一些知識點。第2版是時隔8年之后全新修訂的版本,充分展現(xiàn)了編譯器構造技術的最新進展。作者重寫了書中全部示例,并特別改進了闡述順序,使得章與章之間的內容更具連續(xù)性,也更適合專業(yè)人士將這本高校教材作為參考書。

作者簡介

  Keith D. Cooper,萊斯大學計算機科學系計算工程專業(yè)Doerr特聘教授,曾任該系系主任。Cooper博士的研究課題涵蓋過程間數(shù)據流分析、標量指令優(yōu)化、寄存器分配以及指令調度等方面。Linda Torczon,萊斯大學計算機科學系高級研究員。Torczon的研究內容主要包括代碼生成、過程間數(shù)據流分析和優(yōu)化、編程環(huán)境。譯者簡介:郭旭,資深軟件設計師。主要興趣是復雜軟件系統(tǒng)的分析和設計,目前從事高性能數(shù)據集成工具的研發(fā)。譯有《深入Linux內核架構》、《C語言接口及實現(xiàn)》等書。

圖書目錄

第1章  編譯概觀
1.1  簡介
1.2  編譯器結構
1.3  轉換概述
1.3.1  前端
1.3.2  優(yōu)化器
1.3.3  后端
1.4  小結和展望
第2章  詞法分析器
2.1  簡介
2.2  識別單詞
2.2.1  識別器的形式化
2.2.2  識別更復雜的單詞
2.3  正則表達式
2.3.1  符號表示法的形式化
2.3.2  示例
2.3.3  RE的閉包性質
2.4  從正則表達式到詞法分析器
2.4.1  非確定性有限自動機
2.4.2  從正則表達式到NFA:Thompson構造法
2.4.3  從NFA到DFA:子集構造法
2.4.4  從DFA到最小DFA:Hopcroft算法
2.4.5  將DFA用做識別器
2.5  實現(xiàn)詞法分析器
2.5.1  表驅動詞法分析器
2.5.2  直接編碼的詞法分析器
2.5.3  手工編碼的詞法分析器
2.5.4  處理關鍵字
2.6  高級主題
2.6.1  從DFA到正則表達式
2.6.2  DFA最小化的另一種方法:Brzozowski算法
2.6.3  無閉包的正則表達式
2.7  小結和展望
第3章  語法分析器
3.1  簡介
3.2  語法的表示
3.2.1  為什么不使用正則表達式
3.2.2  上下文無關語法
3.2.3  更復雜的例子
3.2.4  將語義編碼到結構中
3.2.5  為輸入符號串找到推導
3.3  自頂向下語法分析
3.3.1  為進行自頂向下語法分析而轉換語法
3.3.2  自頂向下的遞歸下降語法分析器
3.3.3  表驅動的LL(1)語法分析器
3.4  自底向上語法分析
3.4.1  LR(1)語法分析算法
3.4.2  構建LR(1)表
3.4.3  表構造過程中的錯誤
3.5  實際問題
3.5.1  出錯恢復
3.5.2  一元運算符
3.5.3  處理上下文相關的二義性
3.5.4  左遞歸與右遞歸
3.6  高級主題
3.6.1  優(yōu)化語法
3.6.2  減小LR(1)表的規(guī)模
3.7  小結和展望
第4章  上下文相關分析
4.1  簡介
4.2  類型系統(tǒng)簡介
4.2.1  類型系統(tǒng)的目標
4.2.2  類型系統(tǒng)的組件
4.3  屬性語法框架
4.3.1  求值的方法
4.3.2  環(huán)
4.3.3  擴展實例
4.3.4  屬性語法方法的問題
4.4  特設語法制導轉換
4.4.1  特設語法制導轉換的實現(xiàn)
4.4.2  例子
4.5  高級主題
4.5.1  類型推斷中更困難的問題
4.5.2  改變結合性
4.6  小結和展望
第5章  中間表示
5.1  簡介
5.2  圖IR
5.2.1  與語法相關的樹
5.2.2  圖
5.3  線性IR
5.3.1  堆棧機代碼
5.3.2  三地址代碼
5.3.3  線性代碼的表示
5.3.4  根據線性代碼建立控制流圖
5.4  將值映射到名字
5.4.1  臨時值的命名
5.4.2  靜態(tài)單賦值形式
5.4.3  內存模型
5.5  符號表
5.5.1  散列表
5.5.2  建立符號表
5.5.3  處理嵌套的作用域
5.5.4  符號表的許多用途
5.5.5  符號表技術的其他用途
5.6  小結和展望
第6章  過程抽象
6.1  簡介
6.2  過程調用
6.3  命名空間
6.3.1  類Algol語言的命名空間
6.3.2  用于支持類Algol語言的運行時結構
6.3.3  面向對象語言的命名空間
6.3.4  支持面向對象語言的運行時結構
6.4  過程之間值的傳遞
6.4.1  傳遞參數(shù)
6.4.2  返回值
6.4.3  確定可尋址性
6.5  標準化鏈接
6.6  高級主題
6.6.1  堆的顯式管理
6.6.2  隱式釋放
6.7  小結和展望
第7章  代碼形式
7.1  簡介
7.2  分配存儲位置
7.2.1  設定運行時數(shù)據結構的位置
7.2.2  數(shù)據區(qū)的布局
7.2.3  將值保持在寄存器中
7.3  算術運算符
7.3.1  減少對寄存器的需求
7.3.2  訪問參數(shù)值
7.3.3  表達式中的函數(shù)調用
7.3.4  其他算術運算符
7.3.5  混合類型表達式
7.3.6  作為運算符的賦值操作
7.4  布爾運算符和關系運算符
7.4.1  表示
7.4.2  對關系操作的硬件支持
7.5  數(shù)組的存儲和訪問
7.5.1  引用向量元素
7.5.2  數(shù)組存儲布局
7.5.3  引用數(shù)組元素
7.5.4  范圍檢查
7.6  字符串
7.6.1  字符串表示
7.6.2  字符串賦值
7.6.3  字符串連接
7.6.4  字符串長度
7.7  結構引用
7.7.1  理解結構布局
7.7.2  結構數(shù)組
7.7.3  聯(lián)合和運行時標記
7.7.4  指針和匿名值
7.8  控制流結構
7.8.1  條件執(zhí)行
7.8.2  循環(huán)和迭代
7.8.3  case語句
7.9  過程調用
7.9.1  實參求值
7.9.2  保存和恢復寄存器
7.10  小結和展望
第8章  優(yōu)化簡介
8.1  簡介
8.2  背景
8.2.1  例子
8.2.2  對優(yōu)化的考慮
8.2.3  優(yōu)化的時機
8.3  優(yōu)化的范圍
8.4  局部優(yōu)化
8.4.1  局部值編號
8.4.2  樹高平衡
8.5  區(qū)域優(yōu)化
8.5.1  超局部值編號
8.5.2  循環(huán)展開
8.6  全局優(yōu)化
8.6.1  利用活動信息查找未初始化變量
8.6.2  全局代碼置放
8.7  過程間優(yōu)化
8.7.1  內聯(lián)替換
8.7.2  過程置放
8.7.3  針對過程間優(yōu)化的編譯器組織結構
8.8  小結和展望
第9章  數(shù)據流分析
9.1  簡介
9.2  迭代數(shù)據流分析
9.2.1  支配性
9.2.2  活動變量分析
9.2.3  數(shù)據流分析的局限性
9.2.4  其他數(shù)據流問題
9.3  靜態(tài)單賦值形式
9.3.1  構造靜態(tài)單賦值形式的簡單方法
9.3.2  支配邊界
9.3.3  放置 函數(shù)
9.3.4  重命名
9.3.5  從靜態(tài)單賦值形式到其他形式的轉換
9.3.6  使用靜態(tài)單賦值形式
9.4  過程間分析
9.4.1  構建調用圖
9.4.2  過程間常量傳播
9.5  高級主題
9.5.1  結構性數(shù)據流算法和可歸約性
9.5.2  加速計算支配性的迭代框架算法的執(zhí)行
9.6  小結和展望
第10章  標量優(yōu)化
10.1  簡介
10.2  消除無用和不可達代碼
10.2.1  消除無用代碼
10.2.2  消除無用控制流
10.2.3  消除不可達代碼
10.3  代碼移動
10.3.1  緩式代碼移動
10.3.2  代碼提升
10.4  特化
10.4.1  尾調用優(yōu)化
10.4.2  葉調用優(yōu)化
10.4.3  參數(shù)提升
10.5  冗余消除
10.5.1  值相同與名字相同
10.5.2  基于支配者的值編號算法
10.6  為其他變換制造時機
10.6.1  超級塊復制
10.6.2  過程復制
10.6.3  循環(huán)外提
10.6.4  重命名
10.7  高級主題
10.7.1  合并優(yōu)化
10.7.2  強度削減
10.7.3  選擇一種優(yōu)化序列
10.8  小結和展望
第11章  指令選擇
11.1  簡介
11.2  代碼生成
11.3  擴展簡單的樹遍歷方案
11.4  通過樹模式匹配進行指令選擇
11.4.1  重寫規(guī)則
11.4.2  找到平鋪方案
11.4.3  工具
11.5  通過窺孔優(yōu)化進行指令選擇
11.5.1  窺孔優(yōu)化
11.5.2  窺孔變換程序
11.6  高級主題
11.6.1  學習窺孔模式
11.6.2  生成指令序列
11.7  小結和展望
第12章  指令調度
12.1  簡介
12.2  指令調度問題
12.2.1  度量調度質量的其他方式
12.2.2  是什么使調度這樣難
12.3  局部表調度
12.3.1  算法
12.3.2  調度具有可變延遲的操作
12.3.3  擴展算法
12.3.4  在表調度算法中打破平局
12.3.5  前向表調度與后向表調度
12.3.6  提高表調度的效率
12.4  區(qū)域性調度
12.4.1  調度擴展基本程序塊
12.4.2  跟蹤調度
12.4.3  通過復制構建適當?shù)纳舷挛沫h(huán)境
12.5  高級主題
12.5.1  軟件流水線的策略
12.5.2  用于實現(xiàn)軟件流水線的算法
12.6  小結和展望
第13章  寄存器分配
13.1  簡介
13.2  背景問題
13.2.1  內存與寄存器
13.2.2  分配與指派
13.2.3  寄存器類別
13.3  局部寄存器分配和指派
13.3.1  自頂向下的局部寄存器分配
13.3.2  自底向上的局部寄存器分配
13.3.3  超越單個程序塊
13.4  全局寄存器分配和指派
13.4.1  找到全局活動范圍
13.4.2  估算全局逐出代價
13.4.3  沖突和沖突圖
13.4.4  自頂向下著色
13.4.5  自底向上著色
13.4.6  合并副本以減小度數(shù)
13.4.7  比較自頂向下和自底向上全局分配器
13.4.8  將機器的約束條件編碼到沖突圖中
13.5  高級主題
13.5.1  圖著色寄存器分配方法的變體
13.5.2  靜態(tài)單賦值形式上的全局寄存器分配
13.6  小結和展望
附錄A  ILOC
附錄B  數(shù)據結構
參考文獻
索引

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號