<!-- title: 手搓一门语言：编译器七强精读 -->
<!-- domain: programming -->

# 手搓一门语言：编译器原理七强精读

## 本期概述

在 AI 编码助手几乎能替你写出大半业务代码的 2026 年，一个反直觉的趋势正在悄然复兴：**越来越多的工程师开始「手搓」自己的编程语言**。从 DSL（领域专用语言）到嵌入式脚本引擎，从游戏热重载脚本到 AI Agent 的工作流描述语言，「造一门语言」不再是编译器课程里纸上谈兵的习题，而是日常工程中真实存在的需求——当你需要给非技术人员暴露一套规则配置、给策划同学一套关卡脚本、或者给大模型一套可验证的指令语义时，一个几百行就能跑起来的小解释器，往往比硬塞 YAML 或 JSON 更优雅。

本期（第 2 轮 · programming 分类）避开已被反复讨论的「AI 写代码」话题，深入一个更底层、更朴素也更长久有效的方向：**编程语言到底是怎么被造出来的**。我们从词法分析一路讲到字节码虚拟机与机器码生成，精选 7 个在 YouTube 上以「把黑盒拆给你看」著称的频道与系列，覆盖理论奠基、端到端实战、编译后端、底层汇编靶机、真实运行时内幕与手把手入门全链路。无论你是想为产品做一套 DSL，还是单纯想看穿 Python/Rust 那个「魔法盒子」，这一期都能给你一张可落地的学习地图。

**本期核心发现**：高质量的语言实现内容，几乎都遵循同一条「流水线」结构（词法 → 语法树 → 语义 → IR → 代码生成 → 运行时），而不同频道恰好分别守在流水线的不同工位上——把它们按阶段拼起来，就是一份完整的「自己造语言」课程。

## 频道 / 视频对比一览

| # | 频道 | 代表视频 / 系列 | 聚焦流水线阶段 | 风格定位 | 适合人群 |
|---|------|----------------|--------------|---------|---------|
| 1 | Computerphile | Parsing Explained | 语法分析（理论） | 英伦学院派、短小精悍 | 想夯实理论根基者 |
| 2 | CodePulse | Let's Read "Crafting Interpreters" | 端到端（树遍历解释器） | 跟读式、慢节奏 | 想完整走通一遍者 |
| 3 | Tsoding | A small C compiler / Compiler From Scratch | 编译后端、代码生成 | 直播切片、硬核实战 | 想啃机器码生成者 |
| 4 | Creel | Creel Academy of Computer Science | 底层汇编 / 目标靶机 | 表演型、高信息密度 | 想理解「编译给谁」者 |
| 5 | Low Level Learning | How Compilers Actually Work | 概念全景 | 动画图解、入门友好 | 零基础系统好奇者 |
| 6 | mCoding | How Python Works / Internals of Python | 真实运行时与字节码 | 工程严谨、细节控 | Python 进阶开发者 |
| 7 | Toby Ho | Make Your Own Language 系列 | 前端（Lexer 起步） | 极简手把手 | 想从零动手写第一行者 |

> 说明：订阅数随时间波动，下文标注均为近期近似值，仅作量级参考。

## 一、Computerphile ·《Parsing Explained》——理论奠基的「定海神针」

**频道**：Computerphile（英国诺丁汉大学出品，约 240 万订阅）  
**代表视频**：《Parsing Explained》(youtube.com/watch?v=bxpc9Pp5pZM)，由 Prof. Brailsford 主讲，另有姊妹篇《Parsing - Computerphile》及《Same Story, Different Notation》。

如果你只能看一个视频来理解「解析」这件事，Brailsford 教授的这期几乎是无脑首选。它的价值不在代码量，而在**把最危险的概念陷阱讲透**——为什么「歧义（ambiguity）」是编译器的头号敌人。教授用白板和粉笔，从上下文无关文法讲到移进-归约的取舍，告诉你同一句代码可以对应多棵语法树，而多棵树就意味着语义不确定、程序行为不可预测。

**关键洞察**：解析的本质是「给字符流赋予唯一结构」。Recursive Descent（递归下降）之所以在现代手写解析器里卷土重来（GCC、V8、Clang 都大量使用），正是因为它的可读性和错误恢复能力远胜于机械生成的 LALR 表。Brailsford 不直接下结论，却把选择背后的权衡摊在你面前。

**实用价值**：当你为自己造的小语言设计语法时，这期视频能帮你提前避坑——避免设计出二义文法、避免运算符优先级解析错误。**适合人群**：所有想从「会调 API」升级到「懂原理」的开发者，尤其推荐给面试前补 CS 基础的人。

## 二、CodePulse ·《Let's Read "Crafting Interpreters"》——端到端走通第一遍

**频道**：CodePulse（@CodePulse，数万订阅，由一位兴趣横跨经济学、加密与软件工程的工程师主理）  
**代表视频**：系列开篇《Let's Read "Crafting Interpreters" together》(youtube.com/watch?v=1mQwQCZoQnw)，系统跟读 Robert Nystrom 的经典免费著作《Crafting Interpreters》(craftinginterpreters.com)。

《Crafting Interpreters》被公认为「造语言」领域最友好的入门圣经，它先用 Java 带你写出一个树遍历解释器 jlox，再用 C 重写成一个字节码虚拟机 clox。但这本书信息密度极高，独自啃容易半途而废。CodePulse 的系列价值就在于「**读书会陪练**」——每一章都拆成一期视频，逐节讲解、逐行实现，把作者偶尔跳过的细节补齐。

**关键洞察**：语言的「两遍实现」哲学。第一遍求正确与简洁（树遍历，直接在 AST 上求值），第二遍求性能（字节码 + 栈式虚拟机）。这种「先让它对，再让它快」的渐进式工程观，远比一上来就追求最优来得实用，也暗合了现代工业编译器的分层设计（如解释器 + JIT）。

**实用价值**：跟着这个系列走完，你能真真切切产出一个可运行的小语言解释器，理解闭包、垃圾回收、变量解析等机制如何落地。**适合人群**：有面向对象语言基础、想完整拥有一个「自己造的语言」的工程师，耐心比天赋更重要。

## 三、Tsoding ·《A small C compiler / Compiler From Scratch》——啃下编译后端这块硬骨头

**频道**：Tsoding（直播主 Alexey，数十万订阅，以高强度 Twitch 直播切片闻名）  
**代表视频**：《A small C compiler》(youtube.com/watch?v=_dVchhnO_KI，数月内累计数万观看) 以及播放列表《Compiler From Scratch》（用 C 从零为 COOL 语言构建编译器）。

当多数教程停在「生成 AST 就算结束」时，Tsoding 直接把战场拉到最硬核的**后端**——寄存器分配、栈帧布局、x86-64 指令发射、与系统调用 ABI 的对齐。他的风格是典型的「直播流式硬核」：没有精美剪辑，有的是真实的卡壳、调试、`objdump` 反汇编对照、一行行把高级结构翻译成机器码的现场推演。

**关键洞察**：编译后端的本质是「资源约束下的翻译」。寄存器只有那么几个，调用约定（calling convention）规定了参数怎么传、栈怎么对齐，代码生成的过程就是不断在这些硬约束下做妥协。看 Tsoding 把一个 `if-else` 编成条件跳转指令、把函数调用编成 `call` 与栈帧操作，你会第一次真正理解「函数调用在机器层面到底发生了什么」。

**实用价值**：这是通往系统级编程、JIT 实现、甚至理解 WebAssembly 后端的必经之路。**适合人群**：有 C 语言与汇编基础、能忍受「无剧本直播节奏」的硬核玩家，回报是对底层近乎透明的理解。

## 四、Creel ·《Creel Academy of Computer Science》——理解「编译给谁」的汇编靶机

**频道**：Creel（@WhatsACreel，约 10.4 万订阅，据 DeveloperEducators 数据位列同类前 14% 互动率）  
**代表内容**：《Creel Academy of Computer Science》播放列表（39 期系统课程）以及大量 x64 汇编提速教程。

造语言不能只懂「翻译」，还得懂「翻译给谁」——目标机器。Creel 的频道几乎就是这个角色的最佳讲解员：他用充满感染力的节奏，把 x64 指令集、寄存器、SIMD、内存对齐讲得像动作片一样紧凑。他的《Academy of Computer Science》系列更像一份自洽的 CS 速成课，从位运算到汇编再到性能优化层层递进。

**关键洞察**：高级语言的每一条语句，最终都是对一组寄存器与内存操作的「压缩表达」。理解汇编不是为了手写汇编，而是为了在性能瓶颈出现时，能看懂编译器生成的代码、能判断是算法问题还是底层未优化、能在 profiler 指向某条热点指令时读懂它在做什么。

**实用价值**：性能调优、逆向分析、嵌入式开发的底层弹药库。**适合人群**：游戏与图形开发者、性能敏感场景工程师、以及所有好奇「CPU 真的在干什么」的人。

## 五、Low Level Learning ·《How Compilers Actually Work》——概念全景的动画图解

**频道**：Low Level Learning（@LowLevelLearning，数十万订阅，与 Low Level Academy 同属「把机器讲明白」的阵营）  
**代表内容**：《How Compilers Actually Work》及相关「计算机到底怎么工作」系列，以动画化图解著称。

如果你觉得 Tsoding 太硬、Computerphile 太学术，Low Level Learning 恰好填在中间——它用大量动画把「词法分析 → 语法分析 → 语义分析 → 优化 → 代码生成」整条流水线画给你看，让抽象阶段变成可视的「数据在管线里流动」。它不追求让你立刻能写，而是先帮你建立**正确的心理模型**。

**关键洞察**：编译不是一步魔法，而是一条可拆解、可单独优化的流水线。每个阶段（pass）都有清晰的输入输出契约，前端的产物是 Token 与 AST，中端是 IR 与优化，后端是目标代码。理解了这条流水线，你才能定位「我卡在哪一环」。

**实用价值**：作为进入任何一本编译器教材前的「导览图」，大幅降低后续学习的认知陡坡。**适合人群**：零基础、被「编译原理」四个字吓退过的同学，是最佳破冰入口。

## 六、mCoding ·《How Python Works / Internals of Python》——真实运行时与字节码内幕

**频道**：mCoding（@mCoding，顾问工程师 James Murphy 主理，数十万订阅）  
**代表内容**：《How Python Works》播放列表、《Internals of Python - Part 1 - How Python code gets executed》(youtube.com/watch?v=cYOr5VjukAI) 等。

造语言的理论看多了，容易陷入「纸上谈兵」。mCoding 的最大价值是把你拉回**真实工业级运行时**：Python 源码如何被编译成 `.pyc` 字节码、CPython 的 PVM（Python Virtual Machine）如何用一个大 switch 循环逐条解释字节码、帧对象、`LOAD_FAST` / `CALL` 等指令到底操纵了什么。James 的讲解以工程严谨著称，连 Python 语言的一些「怪癖」和「gotcha」都从字节码层面给出解释。

**关键洞察**：现代动态语言几乎都是「编译器 + 虚拟机」的组合，而非纯粹的「解释执行」。Python 先编译再解释，JIT（如 PyPy、新版 CPython 的自适应解释器）则更进一步在运行时把热点编译成机器码。看懂 CPython 字节码，你就拥有了「用 `dis` 模块诊断性能、读懂异常栈、理解装饰器与生成器底层机制」的超能力。

**实用价值**：直接服务于 Python 性能优化、调试、以及为 Python 写 C 扩展的场景。**适合人群**：Python 中高级开发者、数据/AI 工程师——你的日常工具，值得看穿它的底牌。

## 七、Toby Ho ·《Make Your Own Language》——从第一行 Lexer 开始动手

**频道**：Toby Ho（JS 社区老兵，数万订阅）  
**代表内容**：《Make Your Own Language》系列，第 1 期《The Lexer》(youtube.com/watch?v=Xu4RtLlm42I)，后续涵盖函数调用解析等。

如果你已经被前六个频道撩拨得手痒，Toby Ho 的系列就是最好的「立刻动手」入口。他从最朴素的 Lexer（词法分析器）讲起，用一个极简的实现把字符流切成 Token，没有任何繁复的依赖，几行代码就能跑通。他的教学哲学是「**最小可运行增量**」——每期只前进一小步，但每一步都能看到输出。

**关键洞察**：词法分析的本质是「模式匹配 + 状态机」。一个 Lexer 不过是一段「读到这个字符就进入这个状态、读到那个字符就产出这个 Token」的循环。一旦你在几十行代码里亲手写出来，过去觉得神秘的 Token、 lookahead、最长匹配等概念就全部祛魅了。

**实用价值**：最适合作为周末项目的起点——用一个晚上写出能解析四则运算的 Lexer，下个周末加上 Parser，再下个周末让它能求值。**适合人群**：所有想「今天就动手」的动手派，尤其适合用 JavaScript/动态语言入门的同学。

## 知识结构图：编译流水线与频道工位映射

```mermaid
flowchart LR
    A["源代码 Source"] --> B["词法分析 Lexer<br/>Toby Ho / Low Level Learning"]
    B --> C["Token 流"]
    C --> D["语法分析 Parser<br/>Computerphile"]
    D --> E["AST 抽象语法树"]
    E --> F["语义分析 / 类型检查<br/>CodePulse (jlox)"]
    F --> G["中间表示 IR"]
    G --> H["优化 Optimization<br/>Tsoding"]
    H --> I["代码生成<br/>Tsoding / Creel (x64)"]
    I --> J["字节码 / 机器码"]
    J --> K["运行时 VM/解释器<br/>mCoding (CPython PVM)"]

    style B fill:#e1f5ff
    style D fill:#fff4e1
    style F fill:#e8f5e9
    style I fill:#ffe1e1
    style K fill:#f3e1ff
```

这张图揭示了一个朴素但关键的道理：**没有哪个频道能独自讲完整条流水线，但把它们按阶段拼接，就是一份比任何单本教材都更立体的「造语言」课程。** 推荐的学习路径是「先 Low Level Learning 建立全景 → Computerphile 夯实解析理论 → Toby Ho 动手写 Lexer → CodePulse 走通完整解释器 → Tsoding 攻克后端 → Creel 补足汇编靶机 → mCoding 回到真实工业运行时印证」。

## 为什么 2026 年值得「造一门语言」

把视角拉远一点：在 AI 大模型时代，「语言」的定义正在膨胀。Prompt 本质上是一种非确定性语言，DSL 是确定性语言，而**把确定性 DSL 嵌入到 AI Agent 工作流里**（让模型生成可校验、可执行的指令）正成为 Agent 可靠性的关键工程实践。当你亲手造过一门语言，你就能更清醒地判断：哪些规则应该用确定性语言硬约束，哪些应该交给概率性的模型；哪种场景该用 AST 校验输出，哪种场景该用沙箱化字节码执行。

这正是本期选择「编译器原理」而非又一个 AI 话题的原因——**底层原理的半衰期，远长于任何具体框架**。你今天学会的词法分析，十年后依然适用；而你今天熟练的某个前端框架 API，三年后可能就换了名字。

## 延伸推荐（3 个进阶频道）

- **Branch Education**：以顶级工业动画讲解「编译器指令、CPU 流水线」等底层机制，视觉表现力堪称天花板，适合配合 Creel 食用。
- **Nemean**：专注「从零构建编程语言」，更偏现代语言设计实践，适合在 CodePulse 之后寻找第二个完整案例。
- **LLVM 官方频道（@LLVMPROJ）**：每年 LLVM Developers' Meeting 的演讲合集，是了解工业级编译器基础设施（MLIR、JIT、自动后端生成）最权威的一手来源，适合后端深入。

## 参考来源

1. [Computerphile - Parsing Explained](https://www.youtube.com/watch?v=bxpc9Pp5pZM) — Brailsford 教授讲解解析与文法歧义，理论奠基首选。
2. [CodePulse - Let's Read "Crafting Interpreters"](https://www.youtube.com/watch?v=1mQwQCZoQnw) — 系统跟读 Robert Nystrom 经典著作，端到端实战。
3. [Tsoding - A small C compiler](https://www.youtube.com/watch?v=_dVchhnO_KI) — 直播切片式硬核编译后端实现。
4. [mCoding - Internals of Python: How Python code gets executed](https://www.youtube.com/watch?v=cYOr5VjukAI) — CPython 字节码与 PVM 运行时内幕。
5. [Toby Ho - Make Your Own Language 1: The Lexer](https://www.youtube.com/watch?v=Xu4RtLlm42I) — 极简手把手从 Lexer 起步入门。

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
