微型语言实现 Calcium:用 300 行代码讲清 Python 如何工作
来源: nedbatchelder.com — 2026-08-20
概述
Ned Batchelder 写了一个迷你语言实现 Calcium,用来回答那个常被问起的问题:「Python 不是解释型的吗?为什么大家说它是编译的?」很多人以为「编译」意味着程序变成一串原生 CPU 指令,而 Python 显然不是这样。Calcium 用大约 300 行代码完整呈现 tokenizer、parser、AST、编译器、字节码与执行引擎,作者打算下次再被问到时就拿执行引擎读字节码并执行的那段代码给对方看。它几乎没有东西,也是想玩语言实现的新手很好的起点。
核心要点
- 约 300 行代码包含分词、解析、AST、编译、字节码与执行引擎
- 用来说明 Python 的「编译」到底指什么——它不会变成原生指令序列
- 可直接展示 执行引擎读取字节码并按其执行的代码
- 因为几乎什么都没有,也是 动手玩语言实现的绝佳起点
金句
它几乎没有东西,所以有大量简单的小东西(比如注释)可以加——很适合拿来练手。
👍 0
👎 0
返回 Lobsters 首页