本書全面講述了現代編譯器的結構、編譯算法和實現方法,是Andreww.Apple的“虎書”——ModernCompilerImplementation——“紅、藍、綠”三序列之一。這三本書的內容基本相同。但是使用不同的語言來實現書中給出的一個編譯器。本書使用的是更適合廣大讀者的c語言,而另外兩本書分別采用ML語言和Java語言。本書的另一個特點是增加了一些其他編譯原理教科書沒有涉及的內容。前端增加了面向對象的程序設計語言、函數式程序設計語言等現代語言的編譯實現方法,后端增加了針對現代計算機體系結構特征的一些比較成熟的優(yōu)化方法。這部分內容展現了現代商業(yè)編譯器需解決的一些關鍵問題,開拓了學生的視野,為學生未來進行更深入的研究奠定了基礎。本書全面講述了現代編譯器的各個組成部分,包括詞法分析、語法分析、抽象語法、語義檢查、中間代碼表示、指令選擇、數據流分析、寄存器分配以及運行時系統等。全書分成兩部分,第一部分是編譯的基礎知識,適用于第一門編譯原理課程(一個學期);第二部分是高級主題,包括面向對象語言和函數語言、垃圾收集、循環(huán)優(yōu)化、ssA(靜態(tài)單賦值)形式、循環(huán)調度、存儲結構優(yōu)化等,適合于后續(xù)課程或研究生教學。書中專門為學生提供了一個用C語言編寫的實習項目,包括前端和后端設計,學生可以在一學期內創(chuàng)建一個功能完整的編譯器。本書適用于高等院校計算機及相關專業(yè)的本科生或研究生,也可供科研人員或工程技術人員參考。