為什麼讀這一章#
「我用 Python,但不知道 def f(x): ... 怎麼變成跑起來的程式」── 這就是語言實作的範圍。寫 VM、寫 interpreter、寫 GC、做 JIT,都是這條主線上的事。看懂這些不是為了自己造一個語言(雖然有趣),而是:
- 寫 Python / Ruby / JavaScript 不再「神奇」,能精準預測效能
- 看到
Hidden Class shape transition知道為什麼 V8 要寫成那樣 - 知道為什麼某些寫法觸發 deopt、為什麼 GC pause 是那麼長
- 嵌入式場景需要嵌入腳本(Lua / mruby / MicroPython),知道怎麼挑
本章不教你寫具體某個語言。它教你所有語言實作共用的工程觀念:值表示、派發、frame、closure、method lookup、GC、JIT。
學習路徑#
- 從零造一個玩具語言:01 ➡️ 02 ➡️ 03 ➡️ 04 ➡️ 05 ➡️ 06 ➡️ 10。能跑算術 + 變數 + 函式 + 簡易 GC,就是個堪用的腳本語言
- 理解 Python/Ruby 怎麼跑:01 ➡️ 02 ➡️ 06 ➡️ 07 ➡️ 08 ➡️ 10
- 理解 V8 / JavaScriptCore:04 ➡️ 09 ➡️ 11 是核心
- 嵌入式 / MCU:01 ➡️ 02 ➡️ 04 ➡️ 10 ➡️ 12
推薦書與資源#
- Crafting Interpreters(Robert Nystrom)── 從 zero 寫一個 tree-walking + bytecode VM。中文社群最被推薦的入門書
- Programming Language Pragmatics(Michael Scott)── 通論教科書
- The Garbage Collection Handbook(Jones / Hosking / Moss)── GC 唯一的權威參考
- Engineering a Compiler(Cooper/Torczon)── 編譯器,但前端與 IR 部分對 VM 也有用