如果说编程是用语言指挥机器,那么"编译器与编程语言实现"就是研究语言本身如何被发明、翻译、执行的一门手艺。本期聚焦 programming 分类中最硬核、却极少被系统盘点的一个分支——亲手造一门编程语言。
这一方向与已覆盖的 Rust、WebAssembly、算法、数据库内核、游戏引擎等主题截然不同:它问的是更底层的问题——一行 a = b + 1 究竟经历了什么,才能变成 CPU 引脚上翻转的电平?为了回答这个问题,本期精选 7 个来自全球的优质 YouTube 频道,它们共同覆盖了从词法分析、语法树、字节码虚拟机、LLVM 后端、汇编优化,直到真实硬件执行与逆向安全的完整知识链。
核心发现有三:第一,2025–2026 年"造语言"内容正从枯燥的课本理论,转向直播式工程实战(Tsoding、ThePrimeagen);第二,Robert Nystrom 的《Crafting Interpreters》已成为这一领域的"事实圣经",几乎所有频道都以它为暗线;第三,理解编译器的最佳路径不是读龙书,而是沿着流水线逐段拆解——这正是本期七个频道的价值分工。
| 频道 | 订阅量(约) | 核心定位 | 流水线位置 | 语言/技术栈 |
|---|---|---|---|---|
| Tsoding (@Tsoding) | 124K | 娱乐式编程,从零造编译器 | 前端+后端全链路 | C / 自研语言 |
| Creel (@WhatsACreel) | 中型热门 | 汇编、SIMD、JIT、性能 | 后端优化 | x86 汇编 / C |
| Ben Eater (@beneater) | 1.3M | 面包板造 CPU | 编译终点:硬件 | TTL 芯片 / 6502 |
| Computerphile | 2.6M | CS 概念权威短讲 | 理论框架 | 概念为主 |
| Low Level (@LowLevelLearning) | 中型热门 | 二进制、汇编、安全逆向 | 产物分析 | PE/ELF / x64 |
| ThePrimeagen (@theprimeagen) | 546K | 实现主义,TCP→HTTP | 协议/底层 | Rust / C / TS |
| The Cherno (@thecherno) | 大型 | C++ 深度、链接器 | 编译/链接过程 | C++ |
说明:订阅量为撰稿时多个统计站点(SocialCounts、Social Blade、vidIQ)的公开近似值,存在波动;个别中型频道未列出精确数字以避免误导。
频道:youtube.com/@Tsoding | 订阅约 12.4 万(Tsoding Daily 另有约 20.6 万)
Tsoding(真名 Alexey Kutepov,网名 rexim)的频道简介只有三个词:"Recreational Programming"——娱乐式编程。这个口号本身就是一种宣言:编程不必总是为产品、为 KPI,它可以是纯粹的好奇心驱动。
核心内容与洞察:Tsoding 最具代表性的内容是从零手写一个小型 C 编译器("A small C compiler"系列),以及自研文本编辑器、玩具操作系统等。他几乎所有视频都是 Twitch 直播的精华剪辑,观众能看到真实的调试过程——卡壳、查文档、推翻重来——这种"未经粉饰的工程现场"是其他教学频道极少提供的。他遵循一条朴素原则:不使用 lex/yacc 这类生成器,全部手写词法分析器和递归下降解析器,因此观众能看清每一行代码的来由。
实用价值:如果你想知道"一个编译器到底由哪些零件拼成",没有比跟着 Tsoding 看一遍更直接的方式。他示范了如何用极简的工具链(他自己就维护着一个叫 nob 的零依赖构建系统)实现复杂系统。适合人群:有一定 C 语言基础、厌倦框架调用的工程师,以及想看清"轮子内部"的 curious developer。
频道:youtube.com/@WhatsACreel | 知名底层频道
Creel 的频道简介写得颇为叛逆:"高级语言加在程序员身上的规则与限制,在这里全部失效"。他把镜头对准大多数教程刻意回避的地带——汇编、SIMD 向量指令、JIT 即时编译、内存对齐、缓存行。
核心内容与洞察:Creel 擅长用一个具体问题串起一整套知识。例如他会从"为什么我的循环跑不快"出发,带你看到编译器如何把 C 代码自动向量化,再用手写 SIMD 汇编去碾压编译器的产物,最后讨论数据布局对缓存命中的影响。这种"高级语言 → 反汇编 → 手写优化"的对比,恰好是编译器后端最鲜活的教材:它让你直观理解,编译器做了哪些优化,又错失了哪些优化。
实用价值:对游戏开发、HFT 高频交易、图像处理等性能敏感领域的工程师,Creel 的内容几乎是无价之宝。他反复强调一个认知:你写的不是 C 代码,而是"给编译器的建议"。适合人群:追求极致性能、想读懂编译器输出(-S / Godbolt)的开发者。
频道:youtube.com/@beneater | 订阅约 130 万
Ben Eater 的 8 位计算机系列(基于 6502 / 自制 CPU)是 YouTube 上公认的封神之作。他不用任何抽象——而是在面包板上一根根插 TTL 逻辑芯片,让时钟、寄存器、ALU、总线全部裸露可见。
核心内容与洞察:为什么一个"造硬件"的频道出现在"编译器"专题里?因为编译器的最终产物——机器码——必须落到这样的硬件上才有意义。Ben Eater 的演示让人彻底理解:一条机器指令(如 LDA #$01)被取指、译码、执行时,芯片引脚上究竟发生了什么。他还专门做了用汇编为这台自制计算机写程序的系列,把"高级语言 → 机器码 → 物理执行"这条链补上了最后一环。
实用价值:它是治愈"编译器黑箱恐惧症"的特效药。看完之后,mov、jmp 不再是抽象符号,而是真实可控的电平变化。适合人群:任何想真正理解"计算机如何工作"的人,尤其是科班出身的开发者用来补齐硬件直觉。
频道:youtube.com/Computerphile | 订阅约 260 万(由 Jane Street 赞助)
Computerphile 由英国诺丁汉大学等院校的学者团队出品,每支视频通常 8–15 分钟,由一位真正的计算机科学家对着白板或镜头讲清一个概念。
核心内容与洞察:它的编译相关库存极富——解析器、垃圾回收、正则表达式、图灵完备、指针、Unicode 编码等主题都有经典单集。例如它对"为什么解析 HTML 是不可能的(正则无法匹配嵌套结构)"的讲解,把形式语言层级(乔姆斯基谱系)讲得直观而深刻。它不教你写代码,但教你为什么——为所有动手实践频道提供理论锚点。
实用价值:当你跟着 Tsoding 写解析器卡在"为什么用递归下降而不是状态机"时,回 Computerphile 找一集,往往豁然开朗。适合人群:在校学生、跨专业转码者、需要快速建立 CS 直觉的从业者。
频道:youtube.com/@LowLevelLearning(曾名 Low Level Learning,运营者 Ed)
Ed 是一位有十年以上经验的网络安全研究员(vulnerability researcher)。他的频道从安全的反向角度审视编译器——不看源代码如何变成二进制,而看二进制如何暴露源代码的秘密。
核心内容与洞察:典型内容涵盖 x86/x64 汇编、可执行文件格式(PE / ELF)、内存布局(栈、堆、代码段)、栈溢出与 ROP 攻击的底层原理。这些主题迫使你回答一个尖锐的问题:编译器为便利(如自动管理栈帧、生成可预测的 prologue/epilogue)所做的选择,是否同时埋下了安全漏洞? 他会让你看到,函数调用约定、栈 canary、地址空间随机化(ASLR)本质上都是编译器/链接器/加载器层面的博弈。
实用价值:对逆向工程、漏洞研究、嵌入式安全方向极具价值;对普通开发者,它揭示了一个常被忽视的真相——代码的安全性往往在编译那一刻就被部分决定了。适合人群:安全工程师、嵌入式与系统开发者、对二进制内部结构好奇的人。
频道:youtube.com/c/theprimeagen | 主频道订阅约 54.6 万(ThePrimeTime 另有约 114 万)
ThePrimeagen(Michael Paulson,前 Netflix 工程师)的标签是 Vim、Rust、TypeScript,但贯穿他所有内容的核心理念只有一个——"要真正理解一个东西,就去重新实现它"。
核心内容与洞察:他标志性的"From TCP to HTTP"完整课程,从原始 socket 一路实现到 HTTP 服务器,正体现了这种哲学。在语言/编译方向上,他频繁动手实现解释器、玩具语言、字节码执行器,并在 reaction 视频中点评各类语言设计。他的价值不在"教你语法",而在重新点燃动手造物的乐趣——这一点与 Tsoding 的"Recreational Programming"遥相呼应,也解释了两人为何在社区中常被并提。
实用价值:如果你被框架和抽象淹没、感到离"计算机本质"越来越远,ThePrimeagen 是一剂强心针。他示范了一种学习路径:别只读规格,去把规格写出来。适合人群:有一定经验、面临职业倦怠、想找回"造轮子快感"的中高级开发者。
频道:youtube.com/@thecherno | 运营者 Yan Chernikov
The Cherno 因独立游戏引擎 Hazel 系列和 C++ 深度教程闻名。在语言实现的语境下,他的独特贡献在于讲清了编译器之后、运行之前的那段路——链接。
核心内容与洞察:他的 C++ 系列里有专门集数拆解翻译单元、头文件包含、符号解析、链接器错误等让无数新手抓狂的主题。这些主题虽属"编译/链接"而非"造语言",却恰恰是工业级语言实现最容易被教学视频忽略的部分。The Cherno 反复演示:一行看似无害的重复定义,为何会在链接阶段炸出 LNK2019 这样的错误,编译器与链接器的职责边界到底划在哪里。
实用价值:对 C++ / Rust / C 等编译型语言的使用者,这是从"能跑"到"懂为什么跑"的关键一跃。适合人群:C++ 开发者、游戏引擎学习者、经常被链接错误折磨的工程师。
下面这张图把"一门编程语言从源码到硅片"的完整旅程,与本期七个频道一一对应。读者可按图索骥,找到自己最想补强的那一段。
flowchart LR
SRC["源代码<br/>(a = b + 1)"] --> LEX["词法分析 Lexer<br/>→ Token 流"]
LEX --> PARSE["语法分析 Parser<br/>→ AST 抽象语法树"]
PARSE --> SEMA["语义分析 / 类型检查"]
SEMA --> IR["中间表示 IR<br/>(字节码 / SSA)"]
IR --> OPT["优化 Pass<br/>(常量折叠/内联/向量化)"]
OPT --> CODEGEN["代码生成 Codegen<br/>→ 汇编"]
CODEGEN --> ASM["目标汇编<br/>(x86 / ARM)"]
ASM --> LINK["链接器 Linker<br/>符号解析 / 重定位"]
LINK --> BIN["可执行文件<br/>(PE / ELF)"]
BIN --> EXEC["装载执行<br/>(栈/堆/代码段)"]
EXEC --> HW["硬件执行<br/>(寄存器/ALU/缓存)"]
HW --> REV["逆向 / 安全分析"]
PARSE -. "Computerphile<br/>理论框架" .-> T1[" "]
LEX -. "Tsoding<br/>全链路手写" .-> T2[" "]
OPT -. "Creel<br/>SIMD/JIT 优化" .-> T3[" "]
ASM -. "Low Level<br/>汇编/二进制" .-> T4[" "]
LINK -. "The Cherno<br/>链接器原理" .-> T5[" "]
HW -. "Ben Eater<br/>面包板 CPU" .-> T6[" "]
REV -. "Low Level<br/>逆向安全" .-> T7[" "]
SEMA -. "ThePrimeagen<br/>实现主义" .-> T8[" "]
classDef stage fill:#1e293b,color:#e2e8f0,stroke:#38bdf8,stroke-width:1px;
classDef creator fill:#fef3c7,color:#78350f,stroke:#f59e0b,stroke-width:1px;
class SRC,LEX,PARSE,SEMA,IR,OPT,CODEGEN,ASM,LINK,BIN,EXEC,HW,REV stage;
class T1,T2,T3,T4,T5,T6,T7,T8 creator;
mindmap
root((造一门编程语言))
前端 Frontend
词法分析 Lexer
语法分析 Parser
抽象语法树 AST
Computerphile 理论
Tsoding 手写实现
中端 Middle-end
中间表示 IR
类型系统
语义检查
ThePrimeagen 实践
后端 Back-end
代码生成 Codegen
寄存器分配
向量化优化
Creel SIMD/JIT
链接与装载
符号解析
重定位
PE/ELF 格式
The Cherno 链接器
硬件终点
指令执行
寄存器与ALU
缓存层级
Ben Eater 面包板CPU
反向视角
反汇编
漏洞分析
栈帧布局
Low Level 逆向安全
七个频道虽同属"语言实现"大主题,但适合的读者阶段差异显著,可用一张决策矩阵帮助选型:
quadrantChart
title 频道选型矩阵:理论深度 vs 动手强度
x-axis "低动手强度(看为主)" --> "高动手强度(边看边写)"
y-axis "低理论深度" --> "高理论深度"
quadrant-1 "理论+动手双高"
quadrant-2 "理论型(建立直觉)"
quadrant-3 "轻松入门"
quadrant-4 "纯实战型"
"Tsoding": [0.82, 0.6]
"Creel": [0.7, 0.75]
"Computerphile": [0.2, 0.85]
"ThePrimeagen": [0.78, 0.5]
"The Cherno": [0.65, 0.7]
"Low Level": [0.6, 0.72]
"Ben Eater": [0.85, 0.65]
推荐阅读路径:零基础者先从 Computerphile 建立概念,再用 Ben Eater 补硬件直觉;有 C 基础者直接跟 Tsoding 造一个玩具编译器;进阶者用 Creel 和 Low Level 深入后端与产物;最后用 The Cherno 解决工程中的链接难题,用 ThePrimeagen 维持动手热情。
在 AI 自动补全代码的时代,亲手造一门编程语言看似"无用",却恰恰是最能抵抗技术焦虑的一种学习。因为当你亲手写完词法分析器、亲眼看到 AST 被遍历生成第一条机器码时,所有黑箱都将被打开——你不再是语言的被动消费者,而是它的理解者乃至创造者。本期七强频道,正是这条道路上最值得信赖的同行者。
本文由「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 等场景全覆盖。
