本書封面的圖片是從作者的西北海岸民間藝術(shù)收藏中選取的,這是一張奇爾卡特毛毯的照片。這塊毛毯是在19世紀晚期,由美國阿拉斯加?xùn)|南部的一個特里吉特婦女,用紅松內(nèi)層樹皮制成的非常細的繩子和山羊毛線編織的。編織這樣一塊毛毯通常需要6~9個月。這塊毛毯的圖案分為3個部分。中間的一塊描繪了一條在水中潛游的鯨魚;鯨魚頭位于底部,是一個割裂開了的圖形;中間有著鯨魚面部的那個圖形是鯨魚的身體(在這類繪畫中,看起來像鯨魚面部的圖形并不表示鯨魚的面部);鯨魚的側(cè)鰭在身體的兩邊;而頂部是鯨魚的尾鰭。這個設(shè)計中的每一部分,就本身而言,都是功能上的,并沒有表達什么含意;但它們按正確的方式組合起來,就描繪了一條在水中潛游的鯨魚,顯示了擁有這條毛毯的村長的權(quán)力和特權(quán)。類似地,一個編譯器的每個組件有著某種功能,但僅當這些組件以適當?shù)姆绞浇M合在一起時,才能完整地實現(xiàn)編譯器的功能。設(shè)計和編織這樣一塊毛毯需要技巧,同樣,構(gòu)造工業(yè)水準的編譯器也需要技巧。每個行業(yè)都有一組特定的工具、材料、設(shè)計要素和總體模式,而所有這一切都必須按滿足預(yù)期用戶的需要和愿望的方式組合到一起。
本書涵蓋了現(xiàn)代微處理器編譯器的設(shè)計和實現(xiàn)方面的所有高級主題。
本書首先介紹編譯器的結(jié)構(gòu)、符號表管理、中間代碼結(jié)構(gòu)、運行時支持等問題,探討過程內(nèi)的控制流分析、數(shù)據(jù)流分析、依賴關(guān)系分析和別名分析的各種方法,并介紹一系列的全局優(yōu)化。接下來,講述過程間的控制流分析、數(shù)據(jù)流分析和別名分析,以及程間優(yōu)化和如何應(yīng)用過程間信息來改善全局優(yōu)化。然后,討論有效利用層次存儲系統(tǒng)的優(yōu)化技術(shù)。最后,詳細介紹4種商業(yè)化編譯系統(tǒng),以提供編譯器結(jié)構(gòu)、中間代碼設(shè)計、優(yōu)化策略和效果的專門例子。
目錄:
序
前言
第1章 高級主題介紹
第2章 非形式化編譯算法表示
第3章 符號表結(jié)構(gòu)
第4章 中間表示
第5章 運行時支持
第6章 自動產(chǎn)生代碼生成器
第7章 控制流分析
第8章 數(shù)據(jù)流分析
第9章 依賴關(guān)系分析和依賴圖
第10章 別名分析
第11章 優(yōu)化簡介
第12章 前期優(yōu)化
第13章 冗余刪除
第14章 循環(huán)優(yōu)化
第15章 過程優(yōu)化
第16章 寄存器分配
第17章 代碼調(diào)度
第18章 控制流和低級優(yōu)化
第19章 過程間分析與優(yōu)化
第20章 存儲層次優(yōu)化
第21章 編譯器實例分析與未來的發(fā)展趨勢
附錄A 本書使用的匯編語言指南
附錄B 集合、序列、樹、DAG和函數(shù)的表示
附錄C 軟件資源
參考文獻
索引