[www.ed2k.online]下載基地為您提供軟件、遊戲、圖書、教育等各種資源的ED2K電驢共享下載和MAGNET磁力鏈接下載。
設為首頁
加入收藏
首頁 圖書資源 軟件資源 游戲資源 教育資源 其他資源
 電驢下載基地 >> 图书资源 >> 計算機與網絡 >> 《高級編譯器設計與實現(中文版)》(Advanced Compiler Design and Implementation )掃描版[PDF]
《高級編譯器設計與實現(中文版)》(Advanced Compiler Design and Implementation )掃描版[PDF]
下載分級 图书资源
資源類別 計算機與網絡
發布時間 2017/7/10
大       小 -
《高級編譯器設計與實現(中文版)》(Advanced Compiler Design and Implementation )掃描版[PDF] 簡介: 中文名 : 高級編譯器設計與實現(中文版) 原名 : Advanced Compiler Design and Implementation 作者 : Steven S.Muchnick 譯者 : 趙克佳 沈志宇 圖書分類 : 網絡 資源格式 : PDF 版本 : 掃描版 出版社 : 機械工業出版社 書號 : 7111164296 發行時間 : 2005年7月12日
電驢資源下載/磁力鏈接資源下載:
全選
"《高級編譯器設計與實現(中文版)》(Advanced Compiler Design and Implementation )掃描版[PDF]"介紹
中文名: 高級編譯器設計與實現(中文版)
原名: Advanced Compiler Design and Implementation
作者: Steven S.Muchnick
譯者: 趙克佳
沈志宇
圖書分類: 網絡
資源格式: PDF
版本: 掃描版
出版社: 機械工業出版社
書號: 7111164296
發行時間: 2005年7月12日
地區: 大陸
語言: 簡體中文
簡介:

評論處1樓有網盤鏈接
內容介紹:
  本書涵蓋了現代微處理器編譯器的設計和實現方面的所有高級主題。
   本書首先介紹編譯器的結構、符號表管理、中間代碼結構、運行時支持等問題,探討過程內的控制流分析、數據流分析、依賴關系分析和別名分析的各種方法,並介紹一系列的全局優化。接下來,講述過程間的控制流分析、數據流分析和別名分析,以及程間優化和如何應用過程間信息來改善全局優化。然後,討論有效利用層次存儲系統的優化技術。最後,詳細介紹4種商業化編譯系統,以提供編譯器結構、中間代碼設計、優化策略和效果的專門例子。
   本書適合作為高等院校計算機專業研究生和高年級本科生的教材,也適合需要了解高級編譯器設計和構造有關問題的計算機專業人員參考。
  
   本書特點
   ●為理解高級編譯器設計的主要問題奠定了基礎
   ●深入闡述優化問題
   ●用sun的sparc、ibm的power和powerpc、dec的alpha以及intel的pentium和相關商業編譯器作為案例,說明編譯器結構、中間代碼設計和各種優化方法
   ●給出大量定義清晰的關於代碼生成、優化和其他問題的算法
   ●介紹由作者設計的以清晰、簡潔的方式描述算法的語言ican (非形式編譯算法表示)。
內容截圖:



目錄:
出版者的話
專家指導委員會
譯者序

前言
第1章 高級主題介紹 1
1.1 編譯器結構回顧 1
1.2 基本問題中的高級論題 2
1.3 代碼優化的重要性 4
1.4 優化編譯器的結構 5
1.5 激進型優化編譯器中各種優化的位置 7
1.6 本書各章的閱讀流程 10
1.7 本書沒有涉及的相關主題 10
1.8 例子中所用的目標機 11
1.9 數的表示與數據的大小 11
1.10 小結 11
1.11 進一步閱讀 12
1.12 練習 12
第2章 非形式化編譯算法表示 13
2.1 擴展的巴科斯-諾爾范式語法表示 13
.2.2 ican簡介 14
2.3 ican概貌 16
2.4 完整的程序 17
2.5 類型定義 18
2.6 聲明 18
2.7 數據類型和表達式 19
2.7.1 一般簡單類型 20
2.7.2 枚舉類型 20
2.7.3 數組 21
2.7.4 集合 21
2.7.5 序列 22
2.7.6 元組 23
2.7.7 記錄 23
2.7.8 聯合 24
2.7.9 函數 24
2.7.10 編譯專用的類型 24
2.7.11 值nil 25
2.7.12 size運算符 25
2.8 語句 25
2.8.1 賦值語句 26
2.8.2 過程調用語句 27
2.8.3 返回語句 27
2.8.4 goto語句 27
2.8.5 if語句 27
2.8.6 case語句 27
2.8.7 while語句 28
2.8.8 for語句 28
2.8.9 repeat語句 28
2.8.10 ican的關鍵字 28
2.9 小結 29
2.10 進一步閱讀 29
2.11 練習 29
第3章 符號表結構 31
3.1 存儲類、可見性和生命期 31
3.2 符號屬性和符號表項 32
3.3 局部符號表管理 34
3.4 全局符號表結構 35
3.5 存儲綁定和符號寄存器 38
3.6 生成取數和存數指令的方法 42
3.7 小結 46
3.8 進一步閱讀 46
3.9 練習 47
第4章 中間表示 49
4.1 與中間語言設計有關的問題 49
4.2 高級中間語言 50
4.3 中級中間語言 51
4.4 低級中間語言 52
4.5 多級中間語言 52
4.6 我們的中間語言:mir、hir和lir 53
4.6.1 中級中間表示(mir) 53
4.6.2 高級中間表示(hir) 56
4.6.3 低級中間表示(lir) 57
4.7 用ican表示mir、hir和lir 58
4.7.1 用ican表示mir 59
4.7.2 用ican表示hir 62
4.7.3 用ican表示lir 64
4.8 管理中間代碼的若干數據結構和例程的ican命名 67
4.9 其他中間語言形式 70
4.9.1 三元式 70
4.9.2 樹 71
4.9.3 無環有向圖(dag) 72
4.9.4 前綴波蘭表示 73
4.10 小結 74
4.11 進一步閱讀 74
4.12 練習 74
第5章 運行時支持 77
5.1 數據表示和指令 77
5.2 寄存器用法 80
5.3 局部棧幀 81
5.4 運行時棧 83
5.5 參數傳遞規則 84
5.6 過程的入口處理、出口處理、調用和返回 86
5.6.1 用寄存器傳遞參數:平面寄存器文件 87
5.6.2 用運行時棧傳遞參數 88
5.6.3 用具有寄存器窗口的寄存器傳遞參數 89
5.6.4 過程值變量 91
5.7 代碼共享與位置無關代碼 91
5.8 符號和多態語言支持 94
5.9 小結 96
5.10 進一步閱讀 96
5.11 練習 97
第6章 自動產生代碼生成器 99
6.1 簡介代碼生成器的自動生成 100
6.2 語法制導技術 100
6.2.1 代碼生成器 102
6.2.2 代碼生成器的產生器 103
6.2.3 刪除鏈循環 110
6.2.4 刪除句法阻滯 112
6.2.5 最後的考慮 115
6.3 語義制導的分析介紹 115
6.4 樹模式匹配和動態規劃 116
6.5 小結 120
6.6 進一步閱讀 120
6.7 練習 121
第7章 控制流分析 123
7.1 控制流分析的方法 125
7.2 深度為主查找、前序遍歷、後序遍歷和寬度為主查找 128
7.3 必經結點和後必經結點 132
7.4 循環和強連通分量 139
7.5 可歸約性 143
7.6 區間分析和控制樹 144
7.7 結構分析 147
7.8 小結 156
7.9 進一步閱讀 157
7.10 練習 157
第8章 數據流分析 159
8.1 一個例子:到達-定值 159
8.2 基本概念:格、流函數和不動點 163
8.3 數據流問題及其解決方法的分類 166
8.4 迭代數據流分析 168
8.5 流函數的格 171
8.6 基於控制樹的數據流分析 172
8.7 結構分析 172
8.7.1 結構分析:向前問題 172
8.7.2 結構分析:向後問題 178
8.7.3 結構分析方程的表示 180
8.8 區間分析 181
8.9 其他方法 182
8.10 du鏈、ud鏈和網 183
8.11 靜態單賦值形式 184
8.12 數組、結構和指針的處理 188
8.13 數據流分析器的自動構造 188
8.14 更貪婪的分析 189
8.15 小結 191
8.16 進一步閱讀 192
8.17 練習 192
第9章 依賴關系分析和依賴圖 195
9.1 依賴關系 195
9.2 基本塊依賴dag 196
9.3 循環中的依賴關系 200
9.4 依賴關系測試 204
9.5 程序依賴圖 207
9.6 動態分配的對象之間的依賴關系 209
9.7 小結 210
9.8 進一步閱讀 211
9.9 練習 211
第10章 別名分析 213
10.1 各種現實程序設計語言中的別名 215
10.1.1 fortran 77中的別名 216
10.1.2 pascal中的別名 216
10.1.3 c中的別名 217
10.1.4 fortran 90中的別名 218
10.2 別名收集器 218
10.3 別名傳播器 222
10.4 小結 227
10.5 進一步閱讀 227
10.6 練習 228
第11章 優化簡介 229
11.1 第12~18章討論的全局優化 230
11.2 流敏感性和可能與一定信息 231
11.3 各種優化的重要性 231
11.4 優化的順序與重復 232
11.5 進一步閱讀 235
11.6 練習 235
第12章 前期優化 237
12.1 常數表達式計算(常數折迭) 237
12.2 聚合量標量替代 238
12.3 代數化簡和重結合 240
12.3.1 地址表達式的代數化簡和重結合 241
12.3.2 對浮點表達式應用代數化簡 246
12.4 值編號 247
12.4.1 作用於基本塊的值編號 247
12.4.2 全局值編號 251
12.5 復寫傳播 256
12.6 稀有條件常數傳播 261
12.7 小結 267
12.8 進一步閱讀 269
12.9 練習 269
第13章 冗余刪除 271
13.1 公共子表達式刪除 271
13.1.1 局部公共子表達式刪除 272
13.1.2 全局公共子表達式刪除 276
13.1.3 向前替代 284
13.2 循環不變代碼外提 284
13.3 部分冗余刪除 292
13.4 冗余刪除和重結合 298
13.5 代碼提升 299
13.6 小結 302
13.7 進一步閱讀 302
13.8 練習 304
第14章 循環優化 305
14.1 歸納變量優化 305
14.1.1 識別歸納變量 306
14.1.2 強度削弱 312
14.1.3 活躍變量分析 319
14.1.4 歸納變量刪除和線性函數測試替換 320
14.2 不必要邊界檢查的消除 325
14.3 小結 327
14.4 進一步閱讀 329
14.5 練習 329
第15章 過程優化 331
15.1 尾調用優化和尾遞歸刪除 331
15.2 過程集成 334
15.3 內嵌擴展 337
15.4 葉例程優化和收縮包裝 338
15.4.1 葉例程優化 338
15.4.2 收縮包裝 339
15.5 小結 341
15.6 進一步閱讀 343
15.7 練習 343
第16章 寄存器分配 345
16.1 寄存器分配和指派 345
16.2 局部方法 346
16.3 圖著色 347
16.3.1 圖著色寄存器分配概述 347
16.3.2 頂層結構 349
16.3.3 網,可分配對象 350
16.3.4 沖突圖 354
16.3.5 沖突圖的表示 355
16.3.6 寄存器合並 358
16.3.7 計算溢出代價 359
16.3.8 修剪沖突圖 361
16.3.9 指派寄存器 363
16.3.10 溢出符號寄存器 365
16.3.11 圖著色寄存器分配的兩個例子 367
16.3.12 其他問題 375
16.4 基於優先級的圖著色 376
16.5 其他寄存器分配方法 377
16.6 小結 377
16.7 進一步閱讀 378
16.8 練習 380
第17章 代碼調度 381
17.1 指令調度 381
17.1.1 分支調度 382
17.1.2 表調度 385
17.1.3 自動生成指令調度器 390
17.1.4 超標量實現有關的調度 390
17.1.5 基本塊調度中的其他問題 390
17.1.6 跨基本塊邊界的調度 392
17.2 前瞻取和上推 392
17.3 前瞻調度 393
17.4 軟流水 393
17.4.1 窗口調度 395
17.4.2 展開-壓實軟流水 397
17.4.3 循環展開 400
17.4.4 變量擴張 403
17.4.5 寄存器重命名 404
17.4.6 軟流水的其他方法 407
17.4.7 層次歸約 407
17.5 蹤跡調度 408
17.6 滲透調度 409
17.7 小結 411
17.8 進一步閱讀 413
17.9 練習 413
第18章 控制流和低級優化 415
18.1 不可到達代碼的刪除 415
18.2 伸直化 417
18.3 if化簡 419
18.4 循環化簡 420
18.5 循環倒置 421
18.6 無開關化 422
18.7 分支優化 422
18.8 尾融合或交叉轉移 423
18.9 條件傳送 424
18.10 死代碼刪除 425
18.11 分支預測 429
18.12 機器方言和指令歸並 430
18.13 小結 433
18.14 進一步閱讀 433
18.15 練習 435
第19章 過程間分析與優化 437
19.1 過程間控制流分析:調用圖 438
19.2 過程間數據流分析 445
19.2.1 流不敏感副作用分析 445
19.2.2 流敏感副作用:程序概要圖 455
19.2.3 副作用計算中的其他問題 458
19.3 過程間常數傳播 458
19.4 過程間別名分析 461
19.4.1 流不敏感別名分析 462
19.4.2 傳值和傳指針語言的過程間別名分析 471
19.5 過程間優化 473
19.6 過程間寄存器分配 475
19.6.1 連接時的寄存器分配 475
19.6.2 編譯時的過程間寄存器分配 477
19.7 全局引用的聚合 477
19.8 過程間程序管理中的其他主題 478
19.9 小結 478
19.10 進一步閱讀 480
19.11 練習 480
第20章 存儲層次優化 483
20.1 數據和指令高速緩存的影響 484
20.2 指令高速緩存優化 485
20.2.1 利用硬件輔助:指令預取 485
20.2.2 過程排序 485
20.2.3 過程和基本塊的放置 489
20.2.4 過程內的代碼安置 489
20.2.5 過程分裂 492
20.2.6 過程內和過程間方法的結合 492
20.3 數組元素的標量替換 493
20.4 數據高速緩存優化 496
20.4.1 過程間的數據安排 497
20.4.2 循環轉換 498
20.4.3 局部性與循環鋪砌 502
20.4.4 利用硬件輔助:數據預取 504
20.5 標量優化與面向存儲器的優化 505
20.6 小結 506
20.7 進一步閱讀 508
20.8 練習 508
第21章 編譯器實例分析與未來的發展趨勢 509
21.1 sun用於sparc的編譯器 510
21.1.1 sparc體系結構 510
21.1.2 sun sparc編譯器 511
21.2 ibm power和powerpc體系結構的xl編譯器 517
21.2.1 power和powerpc體系結構 517
21.2.2 xl編譯器 518
21.3 dec用於alpha的編譯器 524
21.3.1 alpha體系結構 524
21.3.2 alpha的gem編譯器 525
21.4 intel 386體系結構上的intel參考編譯器 530
21.4.1 intel 386體系結構 530
21.4.2 intel編譯器 531
21.5 小結 538
21.6 編譯器設計和實現未來的趨勢 539
21.7 進一步閱讀 539
附錄a 本書使用的匯編語言指南 541
附錄b 集合、序列、樹、dag和函數的表示 549
附錄c 軟件資源 557
參考文獻 561
索引 579



相關資源:

免責聲明:本網站內容收集於互聯網,本站不承擔任何由於內容的合法性及健康性所引起的爭議和法律責任。如果侵犯了你的權益,請通知我們,我們會及時刪除相關內容,謝謝合作! 聯系信箱:[email protected]

Copyright © 電驢下載基地 All Rights Reserved