本書按內容分為六個部分,第一部分介紹語言虛擬機的基本概念,並實現位元組碼解譯器;第二部分,實現內嵌類型,如整數、字串、清單和字典等;第三部分,實現了函數;第四部分,實現自訂類、對象和方法;第五部分,實現垃圾回收,也就是自動內存管理;第六部分,模組和反覆運算。本書的章節內容之間都有很強的依賴性,後面的章節內容都是在前面章節的基礎上去實現的,所以讀者必須按部就班地從前向後閱讀,才能保證閱讀的流暢。
本書適合的人群包括:在校大學生(可以通過本書掌握很多計算機工作運行的核心知識),以及對編譯器,程式設計語言感興趣的人。
第1章 程式設計語言虛擬機器
1.1 程式設計語言的發展
1.2 程式設計語言虛擬機器
1.3 開發環境
第2章 編譯流程
2.1 Python位元組碼
2.2 詞法分析
2.3 文法分析
2.4 抽象語法樹
2.4.1 構建AST
2.4.2 遞迴程式的本質
2.4.3 訪問者模式
2.4.4 用Visitor重寫AST
第3章 二進位檔案結構
3.1 pyc檔案格式
3.2 載入CodeObject
3.2.1 準備工具
3.2.2 創建CodeObject
3.3 整理工程結構
3.4 執行位元組碼
第4章 實現控制流
4.1 分支結構
4.1.1 條件判斷
4.1.2 跳轉
4.1.3 True、False和None
4.2 迴圈結構
4.2.1 變數
4.2.2 迴圈內的跳轉
第5章 基本的資料類型
5.1 KlassOop二元結構
5.2 整數
5.3 字串
第6章 函數和方法
6.1 函數
6.1.1 棧幀
6.1.2 創建FunctionObject
6.1.3 調用方法
6.2 變數和參數
6.2.1 LEGB規則
6.2.2 函數的參數
6.2.3 參數預設值
6.3 Native函數
6.4 方法
第7章 清單和字典
7.1 列表
7.1.1 列表的定義
7.1.2 操作列表
7.2 字典
7.2.1 字典的定義
7.2.2 操作字典