SICP (《計算機程序的構造和解釋》) 是計算機科學經典,但對以工程落地為目標的 C 程序員,投入產出比需謹慎評估。前 3 章多為「知其然」,第 4-5 章觸及「知其所以然」,價值顯著上升。
| 章節 | 核心主題 | C 語言對應/替代 | 建議投入 |
|---|---|---|---|
| 1 | 過程抽象、遞歸/迭代、高階函數、閉包 | 函數指針模擬高階函數,結構體+函數指針模擬閉包 | 1-2 小時速覽,理解「組合/抽象」三要素即可 |
| 2 | 數據抽象、符號系統、泛型操作 | 結構體+函數指針表 (vtable 雛形) 實現多態 | 跳過或極速掃讀,C 無原生符號系統,工程用 enum/tagged union |
| 3 | 序列/流、延遲求值、並發模型 | 生產者-消費者隊列、迭代器模式、協程庫 (libco/libgo) | 關注流/管道思想,Unix 哲學「一切皆流」與之共鳴 |
| 4 | 元循環求值器、解析器、懶求值、邏輯編程 | 編譯器前端 (詞法/語法分析)、AST、遞歸下降解析器 | 重點研讀,理解解析器實現本質,對寫 DSL/配置語言極有幫助 |
| 5 | 寄存器機器、編譯器、存儲分配、垃圾回收 | 虛擬機設計、編譯器後端、內存管理、GC 算法 | 核心價值章節,連接高級語言語義與硬體執行模型 |
paredit/smartparens 編輯器插件,或直接看中文譯本/配套視頻 (MIT 6.001)。SICP 是計算機科學的「內功心法」,C 程序員若想突破「API 調用工」天花板,第 4-5 章值得深鉆 1-2 個月 (配合習題與 Scheme 實現)。但若只為業務開發,APUE/CSAPP/Linux 內核 性價比高得多。技術無高低,只有適合當下目標 與否。