高級編譯器設計與實現

高級編譯器設計與實現

本書首先介紹編譯器的結構、符號表管理、中間代碼結構、運行時支持等問題,探討過程內的控制流分析、數據流分析、依賴關係分析和別名分析的各種方法,並介紹一系列的全局最佳化。接下來,講述過程間的控制流分析、數據流分析和別名分析,以及程間最佳化和如何套用過程間信息來改善全局最佳化。然後,討論有效利用層次存儲系統的最佳化技術。最後,詳細介紹4種商業化編譯系統,以提供編譯器結構、中間代碼設計、最佳化策略和效果的專門例子。

基本信息

內容簡介

本書封面的圖片是從作者的西北海岸民間藝術收藏中選取的,這是一張奇爾卡特毛毯的照片。這塊毛毯是在19世紀晚期,由美國阿拉斯加東南部的一個特里吉特婦女,用紅松內層樹皮製成的非常細的繩子和山羊毛線編織的。編織這樣一塊毛毯通常需要6~9個月。這塊毛毯的圖案分為3個部分。中間的一塊描繪了一條在水中潛游的鯨魚;鯨魚頭位於底部,是一個割裂開了的圖形;中間有著鯨魚面部的那個圖形是鯨魚的身體(在這類繪畫中,看起來像鯨魚面部的圖形並不表示鯨魚的面部);鯨魚的側鰭在身體的兩邊;而頂部是鯨魚的尾鰭。這個設計中的每一部分,就本身而言,都是功能上的,並沒有表達什麼含意;但它們按正確的方式組合起來,就描繪了一條在水中潛游的鯨魚,顯示了擁有這條毛毯的村長的權力和特權。類似地,一個編譯器的每個組件有著某種功能,但僅當這些組件以適當的方式組合在一起時,才能完整地實現編譯器的功能。設計和編織這樣一塊毛毯需要技巧,同樣,構造工業水準的編譯器也需要技巧。每個行業都有一組特定的工具、材料、設計要素和總體模式,而所有這一切都必須按滿足預期用戶的需要和願望的方式組合到一起。

本書涵蓋了現代微處理器編譯器的設計和實現方面的所有高級主題。

本書適合作為高等院校計算機專業研究生和高年級本科生的教材,也適合需要了解高級編譯

器設計和構造有關問題的計算機專業人員參考。

本書特點

為理解高級編譯器設計的主要問題奠定了基礎

深入闡述最佳化問題

用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相關商業編譯器作為案例,說明編譯器結構、中間代碼設計和各種最佳化方法

給出大量定義清晰的關於代碼生成、最佳化和其他問題的算法

介紹由作者設計的以清晰、簡潔的方式描述算法的語言ICAN (非形式編譯算法表示)。

目錄

前言

第1章 高級主題介紹

第2章 非形式化編譯算法表示

第3章 符號表結構

第4章 中間表示

第5章 運行時支持

第6章 自動產生代碼生成器

第7章 控制流分析

第8章 數據流分析

第9章 依賴關係分析和依賴圖

第10章 別名分析

第11章 最佳化簡介

第12章 前期最佳化

第13章 冗餘刪除

第14章 循環最佳化

第15章 過程最佳化

第16章 暫存器分配

第17章 代碼調度

第18章 控制流和低級最佳化

第19章 過程間分析與最佳化

第20章存儲層次最佳化

第21章 編譯器實例分析與未來的發展趨勢

附錄A 本書使用的彙編語言指南

附錄B 集合、序列、樹、DAG和函式的表示

附錄C 軟體資源

參考文獻

索引

相關詞條

相關搜尋

熱門詞條

聯絡我們