Robert van Engelen 发布 tinylisp 项目,用约 99 行结构化 C 实现了一个迷你 Lisp 解释器,并配以论文 PDF 讲解如何自行编写。实现借助 NaN boxing(或 BCD boxing)等 C 编程技巧大幅缩小体积,包含 21 个内置 Lisp 原语、简单垃圾回收与 REPL,支持静态作用域与双精度浮点。它甚至能在内置 C 编译器的复古 Sharp PC-G850VS 掌上电脑上编译运行。
🔑 核心要点
约 99 行结构化 C 实现,强 Lisp 风格
借助 NaN boxing 等技巧大幅缩小实现体积
内置 21 个 Lisp 原语、简单 GC 与 REPL
支持 静态作用域与双精度浮点
提供尾调用优化版本以提速并降低内存
💡 金句
尽管很小,这些 C 语言迷你 Lisp 解释器包含 21 个内置原语、简单垃圾回收与 REPL,比玩具示例实用得多。