為什麼讀這一章#

「我用 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 也有用