本書以簡單的算法、清晰的架構,講述了把高級語言轉化成Linux程序的全過程,以及其中蘊含的數(shù)學原理。本書共11章,按照源碼編譯的順序分為入門篇和進階篇。入門篇(第1~4章)詳細介紹了詞法分析、語法分析、語義分析,涵蓋了編譯器前端的所有內容。進階篇(第5~11章)進一步說明了怎么把抽象語法樹轉化成可執(zhí)行程序的全過程,包含了三地址碼的生成、中間代碼優(yōu)化、寄存器分配、機器碼的生成、ELF文件格式、連接器和虛擬機的實現(xiàn)。第12章記錄了作者對泛編譯器問題的進一步思考。本書適合初學者入門編譯原理,也可用于資深程序員在發(fā)明一門新語言時的技術資料,并可用作高等院校和培訓機構的教學參考書。