程式語言精通 封面
Go Kotlin Multi-language VM JIT GC

程式語言精通

📘 深度概覽

資料來源與整理脈絡#

本倉庫整合多份來源:通用程式設計範式(Programming Paradigm)理論彙整自 OOP、FP、泛型(Generic Programming)、控制反轉(Inversion of Control, IoC)等經典工程實務;Go 章節以 Rob Pike 的設計取捨與社群慣用法(idiomatic Go)為主軸;Kotlin Coroutines 章節依出版書《Kotlin 小宇宙》的編排,涵蓋 suspend function 與結構化併發(Structured Concurrency);語言實作章節整合 Crafting InterpretersProgramming Language PragmaticsThe Garbage Collection Handbook 等經典。與市面教程的差異在於:先抽象後具體,先建立範式視角,再對照每個語言怎麼體現該範式。

完整摘要#

筆記由四個模組構成。程式設計範式 鋪陳 OOP 三大特性(封裝、繼承、多型)、FP 三大要素(純函式、不可變性、高階函式)、泛型的型別參數化、以及 IoC 的「業務邏輯依賴控制邏輯」原則,並透過 Functional Options 與 Undo 範例展示工程落地。Go 語言 章節聚焦其刻意「不像主流語言」的取捨:無繼承、以結構體嵌入與介面達成組合、以 error 取代例外、Goroutine + Channel 把 CSP(Communicating Sequential Processes)寫進語法;分五大章涵蓋基礎、資料結構、併發、I/O 網路與測試剖析。Kotlin Coroutines 九章從非同步基本盤(行程、執行緒問題)切入,解析搶佔 vs 協同、stackful vs stackless,再到 launch/async builder、結構化併發、Job 取消、Dispatchers、Channel 與 Flow,最後收於 kotlinx-coroutines-test語言實作 十二章貫穿 VM 整體、bytecode 解剖、opcode 派發策略、值表示(tagged union、NaN-boxing)、call frame、closure 捕獲、物件模型、hidden class 與 inline cache、GC(mark-sweep、generational、incremental)、JIT 與嵌入式 VM。理論層與實踐層在跨章節中互相印證——譬如 Go 的 CSP 與 Kotlin 的結構化併發都可回溯至「範式視角下的併發模型」。

適用情境與閱讀路徑#

適合三類讀者:多語言工程師(依興趣選讀,搭配跨語言對照閱讀)、跨語言遷移者(先看熟悉語言的對應章節再讀目標語言)、底層原理愛好者(直接從「語言實作」入手,搭配 Go/Kotlin 章節對照特定機制如併發或 closure)。建議閱讀順序為 先讀 00-paradigms 建立範式視角,再依需要切入 01-go 或 02-kotlin-coroutines 的具體實踐,最後以 03-language-implementation 拉回底層原理。讀完能帶走:跨範式的抽象選擇直覺、Go/Kotlin 兩條併發路線的對比、以及理解任何語言「跑起來」背後的共通工程觀念。

知識架構總覽#

模組說明章節數
程式設計範式OOP、FP、泛型、IoC 等通用範式的核心思想1
Go 語言Go 核心特性與併發程式設計5(含子章節 22)
Kotlin Coroutines從非同步基礎到 Flow 與測試35
語言實作VM、bytecode、GC、JIT 與物件模型12

此倉庫聚焦於 Java 以外 的程式語言筆記。Java 相關內容請見 java-mastery 倉庫。

收錄主題範圍#

  • 各語言的核心特性、慣用法與並行模型
  • 跨語言比較(同一抽象在不同語言的實作差異)
  • 語言實作層:值表示、派發、closure、GC、JIT

閱讀建議#

  1. 多語言工程師:依興趣選讀,搭配對照閱讀
  2. 跨語言遷移:先看自己熟悉語言的對應章節,再閱讀目標語言
  3. 底層原理愛好者:直接進「語言實作」,搭配 Go / Kotlin 章節對照特定機制