本書迎接現代語言和體系結構的挑戰(zhàn),幫助讀者作好準備,去應對將來要遇到的編譯器設計的問題。本書涵蓋現代微處理器編譯器的設計和實現方面的所有高級主題。本書從編譯設計基礎領域中的高級問題開始,廣泛而深入地闡述各種重要的代碼優(yōu)化技術,分析各種優(yōu)化之間的相對重要關系,以及實現這些優(yōu)化的最有效方法。本書特點●為理解高級編譯器設計的主要問題奠定了基礎●深入闡述優(yōu)化問題●用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相關商業(yè)編譯器作為案例,說明編譯器結構、中間代碼設計和各種優(yōu)化方法●給出大量定義清晰的關于代碼生成、優(yōu)化和其他問題的算法●介紹由作者設計的以清晰、簡潔的方式描述算法的語言ICAN(非形式編譯算法表示)。本書前言本書討論單機編譯器設計和實現技術領域的前沿問題,重點討論編譯優(yōu)化技術(超過了本書60%的篇幅)。我們考慮了支持指令級并行的機器,但幾乎完全忽略了大規(guī)模并行處理和向量處理的有關問題。本書首先討論編譯器的結構、符號表管理(包括那些允許導入和導出作用域的語言)、中間代碼結構、運行時支持問題(包括可以在運行時鏈接的共享對象),以及根據機器描述自動產生代碼生成器等。之后,探討過程內的(通常稱為“全局的”)控制流分析、數據流分析、依賴關系分析和別名分析的各種方法,并介紹一系列的全局優(yōu)化,包括那些作用于程序不同成分(從單個表達式到整個過程)的優(yōu)化。接下來本書講述過程間的控制流分析、數據流分析和別名分析,以及過程間優(yōu)化和如何應用過程間信息來改善全局優(yōu)化。然后,討論有效利用層次存儲系統(tǒng)的優(yōu)化技術。最后,詳細介紹4個分別來自DEC、IBM、Intel和Sun微系統(tǒng)公司的商業(yè)化編譯系統(tǒng),以提供編譯器結構、中間代碼設計、優(yōu)化策略和效果的專門例子。如我們將看到的,這些編譯系統(tǒng)采用的技術具有廣泛的代表性,并用不同的方法獲得了類似的效果。