青木峰郎着的《自制編譯器》將帶領讀者從頭開始制作一門語言的編譯器。筆者特意為本書設計了Cb語言,Cb可以說是C語言的子集,實現了包括指針運算等在內的C語言的主要部分。
本書所實現的編譯器就是Cb語言的編譯器,是實實在在的編譯器,而非有諸多限制的玩具。另外,除編譯器之外,本書對以編譯器為中心的編程語言的運行環境,即編譯器、匯編器、鏈接器、硬件、運行時環境等都有所提及,介紹了程序運行的所有環節。
從單純對編譯器感興趣的讀者到以實用為目的的讀者,都適合閱讀本書。
青木峰郎,程序員,着有《Ruby程序設計268技(第2版)》《Ruby源代碼完全解說》《Linux程序設計》等多部編程相關著作,並積極參與標准庫維護、文檔維護等各種各樣的活動。
目錄
第1章 開始制作編譯器
1.1 本書的概要
本書的主題
本書制作的編譯器
編譯示例
可執行文件
編譯
程序運行環境
1.2 編譯過程
編譯的4個階段
語法分析
語義分析
生成中間代碼
代碼生成
優化
總結
1.3 使用Cb編譯器進行編譯
Cb編譯器的必要環境
安裝Cb編譯器
Cb的Hello, World!
第2章 Cb和cbc
2.1 Cb語言的概要
Cb的Hello, World!
Cb中刪減的功能
import關鍵字
導入文件的規范
2.2 Cb編譯器cbc的構成
cbc的代碼樹
cbc的包
compiler包中的類群
main函數的實現
commandMain函數的實現
Java5泛型
build函數的實現
Java的foreach語句
compile函數的實現
第1部分 代碼分析
第3章 語法分析的概要
3.1 語法分析的方法
代碼分析中的問題點
代碼分析的一般規律
詞法分析、語法分析、語義分析
掃描器的動作
單詞的種類和語義值
token
抽象語法樹和節點
3.2 解析器生成器
什麼是解析器生成器
解析器生成器的種類
解析器生成器的選擇
3.3 JavaCC的概要
什麼是JavaCC
語法描述文件
語法描述文件的例子
運行JavaCC
啟動JavaCC所生成的解析器
中文的處理
第4章 詞法分析
4.1 基於JavaCC的掃描器的描述
第2部分 抽象語法樹和中間代碼
第3部分 匯編代碼
第4部分 鏈接和加載
1.1 本書的概要
本書的主題
本書制作的編譯器
編譯示例
可執行文件
編譯
程序運行環境
1.2 編譯過程
編譯的4個階段
語法分析
語義分析
生成中間代碼
代碼生成
優化
總結
1.3 使用Cb編譯器進行編譯
Cb編譯器的必要環境
安裝Cb編譯器
Cb的Hello, World!
第2章 Cb和cbc
2.1 Cb語言的概要
Cb的Hello, World!
Cb中刪減的功能
import關鍵字
導入文件的規范
2.2 Cb編譯器cbc的構成
cbc的代碼樹
cbc的包
compiler包中的類群
main函數的實現
commandMain函數的實現
Java5泛型
build函數的實現
Java的foreach語句
compile函數的實現
第1部分 代碼分析
第3章 語法分析的概要
3.1 語法分析的方法
代碼分析中的問題點
代碼分析的一般規律
詞法分析、語法分析、語義分析
掃描器的動作
單詞的種類和語義值
token
抽象語法樹和節點
3.2 解析器生成器
什麼是解析器生成器
解析器生成器的種類
解析器生成器的選擇
3.3 JavaCC的概要
什麼是JavaCC
語法描述文件
語法描述文件的例子
運行JavaCC
啟動JavaCC所生成的解析器
中文的處理
第4章 詞法分析
4.1 基於JavaCC的掃描器的描述
第2部分 抽象語法樹和中間代碼
第3部分 匯編代碼
第4部分 鏈接和加載
網路書店
類別
折扣
價格
-
新書87折$517