<!-- title: 编译器与语言实现七大频道精选 -->
<!-- domain: programming -->

# 编译器与语言实现七大频道精选：从源码到机器指令的硬核之旅

## 本期概述

本期为 Round 2「编程与开发」专题，我们刻意避开已被反复覆盖的"语言精通""系统架构""开发者工具链"等热门赛道，深入一个极度硬核却长期被中文技术圈忽视的子领域——**编译器原理、解释器构建与编程语言实现**（Compiler / Interpreter / Programming Language Implementation）。

为什么这个方向值得单独立题？因为它是整条软件技术栈的"最后一公里"：无论你写 Python、Rust 还是 TypeScript，最终都要经过词法分析、语法解析、抽象语法树、代码生成这一条流水线。理解这条流水线的人，能读懂任何语言的源码、能调试任何诡异的语言行为、能设计 DSL 解决领域问题，更能从"语言的使用者"跃升为"语言的掌控者"。

本期精选的 7 个频道横跨四大学习范式：**系统化课程**（Dmitry Soshnikov）、**渐进式实战**（CodePulse）、**极客式硬核**（Bisqwit、Tsoding）、**底层原理剖析**（Low Level）、**学术科普**（Computerphile）、**工业级实践**（Jonathan Blow 与 Casey Muratori）。它们共同构成了一条从入门到精通的完整学习地图。

## 频道对比总览

| 频道 | 风格定位 | 核心技术栈 | 难度 | 适合人群 |
|------|---------|-----------|------|---------|
| Dmitry Soshnikov | 学术严谨的系统课程 | 解析器/解释器/VM引擎 | ⭐⭐⭐⭐ | 想深入理论并亲手实现者 |
| CodePulse | 循序渐进的实战教学 | Python、从零构建 | ⭐⭐ | 编译零基础入门者 |
| Bisqwit | 极客式从零硬核 | C++、手写全套 | ⭐⭐⭐⭐⭐ | 追求极限理解的资深开发者 |
| Tsoding | 娱乐编程直播流 | C、Rust、多语言 | ⭐⭐⭐ | 喜欢边看边敲的实战派 |
| Low Level | 底层原理动画拆解 | 汇编、CPU、编译流程 | ⭐⭐⭐ | 想理解"代码如何变成机器指令" |
| Computerphile | 大学教授概念科普 | 理论概念为主 | ⭐⭐ | 建立宏观认知的初学者 |
| Blow & Muratori | 工业级语言设计实战 | C/Jai、性能优先 | ⭐⭐⭐⭐⭐ | 关注语言设计与极致性能者 |

---

## 一、Dmitry Soshnikov：把编译原理讲成艺术品的工程师教师

**频道**：[@DmitrySoshnikov-education](https://www.youtube.com/@DmitrySoshnikov-education) ｜ **个人站**：[dmitrysoshnikov.com](https://dmitrysoshnikov.com/)

Dmitry Soshnikov 是一位专注于编程语言内部原理（programming language internals）的资深工程师与教育者。他的频道堪称整个 YouTube 上对"语言如何被实现"讲解得最为系统、严谨的教学资源之一。

核心内容围绕三大旗舰课程展开：**《Building a Parser from scratch》**（从零构建递归下降解析器）、**《Essentials of Interpretation》**（解释器本质——16 讲覆盖 AST、求值器、闭包、作用域链、垃圾回收）、以及 **《Building a Compiler / Engine》**（编译器与执行引擎，含字节码虚拟机与 JIT 入门）。他的讲解有一条清晰的哲学主线：不依赖任何第三方库或解析器生成器，所有代码全部手工实现，让你看清每一行源码背后的数据结构与算法。

**实用价值**：如果你曾对"JavaScript 的作用域链到底是什么""Python 的闭包捕获为何有时不符合直觉""JIT 即时编译如何兼顾启动速度与峰值性能"等问题感到困惑，Dmitry 的课程能给出工程层面最透彻的答案。看完《Essentials of Interpretation》，你会发现自己看待任何动态语言的眼光都变了。

**适合人群**：有一定编程基础、不满足于"会用 API"、希望理解语言运行时机制的中高级开发者；尤其适合正在准备编译原理课程或面试底层岗位的工程师。

---

## 二、CodePulse：让编译器入门变得不再可怕

**频道**：[@CodePulse](https://www.youtube.com/@CodePulse)

CodePulse 是一个对新手极其友好的实战教学频道，其镇频之作是基于 Ruslan Spivak 经典博客 "Let's Build a Simple Interpreter"（LSBASI）改编的系列教程：**用 Python 从零构建一个完整的解释器**，从最简单的整数加减法逐步演进到支持变量、作用域、函数调用、控制流的微型 BASIC 风格语言。

教学节奏是这个频道最大的优势。每一集只增加一个概念单元：先讲词法分析器（Lexer）如何把字符流切成 Token，再讲递归下降 Parser 如何把 Token 流组织成 AST，最后讲树遍历解释器如何对 AST 求值。每一步都有可运行的 Python 代码、清晰的图示和单元测试。整套系列结束时，你手里会有一个真正能跑的、可扩展的解释器项目。

**实用价值**：对绝大多数程序员而言，"从零写一个能运行的语言"是极具成就感的里程碑，它能彻底消除对编译器这一黑盒的恐惧。这个系列也是通往更高级资源（如 Crafting Interpreters 一书）的最佳前置桥梁。

**适合人群**：完全没有任何编译器经验、想以最低门槛入门的程序员；高中生或低年级计算机专业学生；希望用一个完整项目来巩固数据结构（树、栈、哈希表）与面向对象设计能力的自学者。

---

## 三、Bisqwit：北欧极客的"用 C++ 手搓编译器"史诗

**频道**：[@Bisqwit](https://www.youtube.com/@Bisqwit) ｜ **配套仓库**：[github.com/bisqwit/compiler_series](https://github.com/bisqwit/compiler_series)

Bisqwit（本名 Joel Yliluoma）是芬兰资深程序员，活跃于 NES 模拟器、复古硬件与底层编程领域二十余年。他的频道副标题是 "Live programming as a form of art"（把实时编程当作一种艺术），而他的 **《Creating a Compiler》** 系列正是这一理念的最强体现。

这个系列的硬核程度在整个 YouTube 都属罕见：他用纯 C++，从手写词法分析器开始，一路实现完整的语法分析、语义分析、中间代码生成、寄存器分配与目标代码生成，最终产出一个能将自定义语言编译为真实可执行机器码的编译器。整个过程几乎不依赖现成工具链，连汇编输出都是手工拼接的。配套的 GitHub 仓库 `compiler_series` 提供了分阶段的完整代码与构建脚本。

**实用价值**：这是少数能让你真正理解"编译器后端到底在干什么"的资源。寄存器分配、指令选择、栈帧布局这些在教科书里抽象晦涩的概念，在 Bisqwit 的逐行 C++ 实现中变得触手可及。对于想从事编译器工程、嵌入式工具链或高性能运行时开发的人，这是一座金矿。

**适合人群**：C/C++ 功底扎实、追求"知其然且知其所以然"的资深开发者；复古计算与底层系统爱好者；有耐心啃下长视频的学习者。

---

## 四、Tsoding：把语言实现直播成一场娱乐秀

**频道**：[@tsoding](https://www.youtube.com/tsoding) 与 [@TsodingDaily](https://www.youtube.com/@TsodingDaily) ｜ **GitHub**：[github.com/tsoding](https://github.com/tsoding)

Tsoding（其人格化 ID 为 Tsoding）的标签是 "Recreational Programming"（娱乐编程），但千万别被这个词误导——他做的是整个平台最酣畅淋漓的实时编程直播之一。频道内容横跨函数式编程（Haskell）、系统编程（C）、现代系统语言（Rust、Zig）以及大量的"从零造轮子"项目。

在语言实现方向上，Tsoding 有多个完整系列：从零手写 Lisp 解释器、构建自己的构建工具、实现基于立即模式（immediate-mode）的 GUI 库，以及近期复活一门古老编程语言的工程。直播的真实性是其魅力核心——你会看到他当场遇到 bug、读汇编、查规范、推翻重来，这种"思考过程外化"的展示比任何精修教程都更有教学价值。

**实用价值**：Tsoding 教会你的不是某个具体算法，而是一种**工程调试的肌肉记忆**和**面对未知问题时的拆解方法**。他的 C 语言代码风格极其干净（大量使用 typedef、宏与单文件架构），对想提升 C 编程品味的人是极佳范本。

**适合人群**：偏好"沉浸式观摩"学习法、喜欢边看边敲代码的实战派；对函数式编程、系统编程同时感兴趣的多面手开发者。

---

## 五、Low Level（Ed）：动画拆解"代码如何变成 CPU 指令"

**频道**：[@LowLevelLearning](https://www.youtube.com/c/LowLevelLearning) ｜ **学院**：[lowlevel.academy](https://lowlevel.academy/)

频道主 Ed 自我定位为低层程序员、安全工程师与软件安全研究员。Low Level 频道擅长用精炼的动画与图示，把"编译器如何工作""CPU 如何执行指令""内存如何被分配与回收"这类底层黑盒讲得直观透彻。其代表作之一《How Compilers Work》单条视频即获得近百万播放量。

内容覆盖三个层次：**编译流程**（源码 → 预处理 → 编译 → 汇编 → 链接，每一阶段产出的中间产物到底是什么）、**CPU 执行模型**（指令周期、流水线、缓存层级如何影响代码性能）、**逆向工程视角**（当你能反汇编时，"开源"与"闭源"的边界在哪里——这也是频道标志性话题）。配套的 Low Level Academy 提供更系统化的付费课程。

**实用价值**：这个频道是"理解编译器存在意义"的最佳起点。很多程序员写了一辈子代码却不清楚 `.o` 文件、链接器、重定位表为何物；Low Level 用十几分钟的视频就能补上这块认知。对性能优化、安全研究、嵌入式开发都有直接帮助。

**适合人群**：从应用层想向底层下钻的全栈/后端开发者；安全研究初学者；嵌入式与物联网工程师；任何对"计算机底层到底如何运转"抱有好奇心的人。

---

## 六、Computerphile：大学教授把编译理论讲给你听

**频道**：[@Computerphile](https://www.youtube.com/user/Computerphile)（英国诺丁汉大学出品）

Computerphile 是计算机科学领域最具公信力的科普频道之一，由英国诺丁汉大学计算机学院的教授与研究人员主讲，订阅量级在数百万。它不教你写代码，而是用十几分钟的访谈式讲解，把编译原理、自动机理论、算法本质等学科核心概念讲得通俗而准确。

与编译器直接相关的代表性内容涵盖：**词法分析与有限状态自动机**、**语法与上下文无关文法**、**解析技术（LL、LR、递归下降）的权衡**、**图灵机与可计算性边界**、**为什么有些语言特性会导致解析歧义（如 dangling else）**。每期都由该领域的实际研究者出镜，配有手写板书或简单动画，保留了"大学课堂"的严谨氛围。

**实用价值**：当你被某个编译器报错（"shift/reduce conflict""ambiguous grammar"）折磨时，Computerphile 的视频能帮你回到第一性原理理解根因。它也是建立"理论地图"的最佳捷径——在动手实现之前，先知道这片领域有哪些山头。

**适合人群**：在校学生备考编译原理/形式语言课程；自学 CS 体系的知识布道者；需要向团队或学生解释底层概念的技术负责人与教师。

---

## 七、Jonathan Blow 与 Casey Muratori：工业级语言设计与性能极致

**频道**：[@jblow888](https://www.youtube.com/@jblow888)（Jonathan Blow）与 [@cmuratori](https://www.youtube.com/@cmuratori)（Casey Muratori）

把这两位放在一起，是因为他们代表了"真正在工业前沿设计并实现一门编程语言"的稀缺视角。

**Jonathan Blow** 是著名独立游戏《The Witness》与《Braid》的创作者，他正在设计一门面向高性能软件（尤其是游戏）的新语言 **Jai**。他的频道里有大量直播录像，展示了从语言哲学（为什么 C++ 不够用、为什么需要更好的元编程与数据导向设计）到具体编译器实现细节的完整思考链路。这是极为罕见的"语言设计者亲自讲述设计决策"的一手资料。

**Casey Muratori** 的代表作是传奇系列 **《Handmade Hero》**——从零行代码开始，在直播中逐行手写一个完整的跨平台游戏，全程不用任何现成引擎与库。在这个过程中，他示范了如何亲自实现内存分配器、文件加载器乃至自己的构建管线，本质上是一场关于"不依赖编译器黑盒之外的一切"的极限教学。他的"Semantic Compression"等演讲也是关于代码结构与编译思维的经典。

**实用价值**：这两位频道提供的不是教程，而是**心智模型**——一种"为极致性能与程序员体验而设计"的工程哲学。对于想理解为什么现代语言（Zig、Odin、Rust）会如此演进、想设计自己的 DSL 或工具链的资深工程师，这是不可替代的参考。

**适合人群**：游戏与图形行业资深开发者；编程语言设计爱好者；对"软件性能的物理极限"有执念的极客；愿意投入大量时间吸收长直播与深度论述的硬核学习者。

---

## 知识结构图谱

```mermaid
graph TD
    A[编译器与语言实现学习地图] --> B[理论概念层]
    A --> C[渐进实战层]
    A --> D[硬核实现层]
    A --> E[工业实践层]

    B --> B1[Computerphile<br/>编译原理科普]
    B --> B2[Low Level<br/>编译流程与CPU原理]

    C --> C1[CodePulse<br/>Python从零构建解释器]
    C --> C2[Dmitry Soshnikov<br/>系统化课程]

    D --> D1[Bisqwit<br/>C++手写全栈编译器]
    D --> D2[Tsoding<br/>直播式语言实现]

    E --> E1[Jonathan Blow<br/>Jai语言设计]
    E --> E2[Casey Muratori<br/>Handmade Hero]

    B1 -.->|夯实理论后| C1
    C1 -.->|进阶到| C2
    C2 -.->|深入底层| D1
    D2 -.->|观摩工业级| E1

    style A fill:#2d6a4f,color:#fff,stroke:#1b4332
    style B fill:#52b788,color:#fff
    style C fill:#74c69d,color:#000
    style D fill:#95d5b2,color:#000
    style E fill:#b7e4c7,color:#000
```

### 编译器核心流程认知图

```mermaid
flowchart LR
    S[源代码<br/>Source Code] --> L[词法分析<br/>Lexer/Scanner]
    L --> T[Token 流]
    T --> P[语法分析<br/>Parser]
    P --> AST[抽象语法树<br/>AST]
    AST --> SEM[语义分析<br/>类型检查/作用域]
    SEM --> OPT[优化<br/>中间表示 IR]
    OPT --> GEN[代码生成<br/>Codegen]
    GEN --> OBJ[目标代码<br/>字节码/机器码]
    OBJ --> RUN[运行时<br/>VM 或 直接执行]

    L -.- N1[CodePulse / Low Level]
    P -.- N2[Dmitry Soshnikov / Tsoding]
    OPT -.- N3[Bisqwit]
    GEN -.- N4[Bisqwit / Low Level]
    RUN -.- N5[Dmitry / Computerphile]

    style S fill:#40916c,color:#fff
    style AST fill:#1b4332,color:#fff
    style RUN fill:#2d6a4f,color:#fff
```

## 学习路径建议

对于初次进入这一领域的读者，建议采用以下递进路径：

1. **建立直觉**（1-2 周）：先看 Computerphile 与 Low Level 的概念科普视频，建立"代码如何变成机器指令"的整体认知地图。
2. **动手入门**（4-8 周）：跟随 CodePulse 用 Python 写一个完整解释器，这是消除编译器恐惧的最快路径。
3. **理论深化**（2-3 个月）：进入 Dmitry Soshnikov 的系统课程，补齐递归下降、AST、求值器、闭包与 GC 的工程化实现。
4. **极限挑战**（可选）：挑战 Bisqwit 的 C++ 编译器系列，或观摩 Tsoding 的直播，理解编译器后端与真实工程调试。
5. **工业视角**（长期）：以 Blow 与 Muratori 的内容作为思想养料，理解语言设计的取舍哲学。

## 延伸推荐

- **Robert Nystrom《Crafting Interpreters》**（[craftinginterpreters.com](https://craftinginterpreters.com/)）：免费在线经典，从树遍历解释器一路写到字节码 VM，是 CodePulse 之后的最佳进阶。
- **Ruslan Spivak "Let's Build a Simple Interpreter"**（[ruslanspivak.com](https://ruslanspivak.com/lsbasi-part1/)）：CodePulse 系列的原始灵感来源，文字版同样精彩。
- **LLVM 官方教程《My First Language Frontend》**（[llvm.org/docs/tutorial](https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html)）：用 Kaleidoscope 语言演示如何基于 LLVM 构建带 JIT 的编译器。
- **The Cherno（@TheCherno）**：C++ 与底层系统编程，是通往 Bisqwit 风格的前置 C++ 基础补给站。
- **Creel**：以可视化方式深入讲解编程语言与计算机底层工作原理，风格与 Low Level 互补。

## 参考来源

1. [Dmitry Soshnikov — Education](https://dmitrysoshnikov.com/) — 编程语言内部原理系统课程官方站，含 Parser/Interpreter/Engine 三大旗舰课程介绍。
2. [Bisqwit — Creating a Compiler 系列](https://github.com/bisqwit/compiler_series) — 用 C++ 从零构建编译器的配套代码与教学材料仓库。
3. [Low Level Academy](https://lowlevel.academy/) — 低层编程、编译流程与 CPU 原理频道的官方学院。
4. [x-team — 18 Code Streaming Channels to Make You a Better Programmer](https://x-team.com/magazine/code-streaming-channels) — 社区对 Tsoding 等"娱乐编程"直播频道的教学价值评估。
5. [Reddit r/learnprogramming — 25 Programming YouTube channels](https://www.reddit.com/r/learnprogramming/comments/mve0i8/25_programming_youtube_channels_you_should/) — 编程社区推荐的优质学习频道汇编。

---
> 本文由「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)
