首页 › programming › 自造编程语言七大实战教程精选

自造编程语言七大实战教程精选

编程语言的尽头,是造一门自己的语言。2026年,从词法分析器到字节码虚拟机,YouTube上涌现出一批教你从零构建编译器和解释器的高质量实战教程。本文精选七个风格迥异的频道与系列,带你深入编程语言实现的内核世界。

为什么「造语言」值得学?

编译器曾被视为计算机科学的"黑魔法"——只有博士和芯片厂商才需要碰的东西。但2026年的现实是:理解编译原理的人,在代码审查、性能优化、DSL设计、静态分析工具开发等领域拥有压倒性优势。从Babel到ESLint,从GraphQL Schema到Terraform HCL,现代开发中到处都是"小编译器"的身影。

更关键的是,AI代码生成时代让"理解语言本质"变得比"记住语法"更重要。当你亲手写过词法分析器、构造过抽象语法树(AST)、实现过类型推导算法,你对编程语言的理解会从"使用者"跃升到"设计者"。

七大频道/系列对比总览

频道/系列 核心语言 难度 内容形式 适合人群 预计学习时长
Pikuma C语言 ⭐⭐⭐ 付费课程+免费预览 系统学习者 18-25小时
Computerphile 通用 ⭐⭐ 短视频系列 入门好奇者 1-2小时
Jonathan Blow Jai/C++ ⭐⭐⭐⭐⭐ 长视频讲座 资深工程师 30+小时
Tsoding C/Haskell ⭐⭐⭐⭐ 直播回放 实战派 10-20小时
Alex The Dev Java ⭐⭐ 分步教程 初学者 3-5小时
Make Programming Fun Again Go ⭐⭐⭐ 系列教程 Go开发者 8-12小时
Building a Compiler (F#) F# ⭐⭐⭐⭐⭐ 系列深度教程 函数式爱好者 15-20小时

一、Pikuma:从第一性原理构建编译器

频道: Pikuma
创作者: Gustavo Pezzi
代表课程: "Compilers, Interpreters & Formal Languages"

Gustavo Pezzi是英国的一名计算机科学讲师,他的教育平台Pikuma以"零自我、零噱头"著称。在编译器课程中,他带领学生用C语言从零实现一个名为"pinky"的编程语言,覆盖完整的编译管线。

核心知识点

独特价值

Pikuma的教学风格是"每一行代码都手写"。他不使用任何编译器生成工具(如ANTLR、 Bison),而是从最底层开始构建。这种做法看似低效,实则让你真正理解编译器每个组件的工作原理。课程约18小时,配套有完整的源代码仓库。

适合人群: 有一定C语言基础,想要系统学习编译器全流程的开发者。


二、Computerphile:学术视角的语言设计入门

频道: Computerphile
订阅数: 约280万
代表系列: "Creating Your Own Programming Language" (Dr. Laurie Tratt)

Computerphile是Brady Haran制作的计算机科学科普频道,以学术严谨和通俗表达的完美结合闻名。在其编程语言系列中,伦敦国王学院的Dr. Laurie Tratt亲自出镜,从零创建一门全新的编程语言。

核心知识点

独特价值

Computerphile的最大优势在于降低认知门槛。Dr. Tratt能在15分钟内把编译器的核心概念讲清楚,不需要你懂C语言或任何特定编程语言。视频采用白板讲解+现场编码的方式,非常适合初学者建立概念框架。

适合人群: 对编译原理好奇但不知从何下手的初学者,适合作为入门第一站。


三、Jonathan Blow:为游戏而生的Jai语言

频道: Jonathan Blow
代表系列: "A Programming Language for Games"

Jonathan Blow是《Braid》和《The Witness》的创造者,他在开发游戏的过程中对C++的复杂性感到厌倦,于是自己设计了一门新语言——Jai。这个系列记录了Jai从设计到实现的全过程,是理解工业级语言设计的宝贵资料。

核心知识点

独特价值

这是YouTube上唯一一个由一线游戏开发者在公开场合展示语言设计全过程的系列。Blow不回避设计中的错误和返工,真实展示了语言设计者面临的艰难取舍。71个视频、超过37万次观看,这个系列本身就是一部"语言设计日记"。

适合人群: 有5年以上编程经验的资深工程师,对语言设计有深层兴趣的游戏开发者。


四、Tsoding:硬核直播构建解释器

频道: Tsoding / Tsoding Daily
代表视频: "Coding an Interpreter in C from Scratch"

Tsoding(又称rexim)是YouTube上最具个性的程序员之一。他的视频没有任何剪辑、没有花哨的PPT,就是一个人、一个编辑器、一个终端,从零开始写代码。在解释器系列中,他用纯C语言实现了一个算术表达式解释器。

核心知识点

独特价值

Tsoding的教学方式是"纯流式"的——你会看到他写bug、调试、重构、甚至偶尔骂代码的全过程。这种真实性让你学到教科书里没有的东西:如何思考问题,而不仅仅是如何写正确的代码。

适合人群: 喜欢跟着别人一起写代码的学习者,C语言爱好者,追求"硬核感"的程序员。


五、Alex The Dev:零基础编译器构建指南

频道: Alex The Dev
订阅数: 约1.2万
代表视频: "Build a Simple Compiler From Scratch" / "How to Build a Compiler from Scratch | Full Guide"

Alex The Dev是一个小众但高质量的编程教育频道。他的编译器教程使用Java作为实现语言,从最简单的算术表达式编译开始,逐步扩展到完整的编程语言。

核心知识点

独特价值

Alex的视频是最适合初学者的编译器教程之一。他用清晰的图示、分步的讲解、合理的代码量,让一个看似复杂的话题变得平易近人。如果你对编译器有畏惧心理,从这里开始是最好的选择。每个视频都控制在合理时长内,不会让你感到信息过载。

适合人群: 编译器零基础学习者、Java开发者、想要快速理解编译器全貌的学生。


六、Make Programming Fun Again:用Go实现Crafting Interpreters

频道: Make Programming Fun Again
代表系列: "Write an Interpreter in Go" (Crafting Interpreters系列)

Robert Nystrom的《Crafting Interpreters》被公认为学习编译器实现的最好教材之一。这个频道将书中的Lox语言用Go语言重新实现,逐章讲解,覆盖从词法扫描到解释器执行的完整过程。

核心知识点

独特价值

这个系列将经典教材与Go语言结合,形成了独特的价值。Go语言简洁的语法和明确的错误处理机制,让编译器代码的意图一目了然。更重要的是,它将《Crafting Interpreters》这本经典书籍变成了可交互的视频课程——你可以边看书边看视频,加深理解。

适合人群: Go语言开发者、正在阅读《Crafting Interpreters》的读者、喜欢书本+视频组合学习的人。


七、Building a Compiler:F#函数式编译器深度实现

频道: Building a Compiler系列
实现语言: F#
代表系列: "Writing a compiler in F#"

这是一个极具深度的编译器实现系列,使用F#语言构建一个基于无类型λ演算的函数式编程语言的编译器。从AST定义到字节码生成,每一层都经过精心设计。

核心知识点

独特价值

这是本文推荐的最硬核的系列。它不只教你"如何写编译器",更教你"如何用函数式编程的思维来组织编译器代码"。F#的类型系统在编译器开发中简直是天然工具——discriminated unions完美匹配AST定义,pattern matching完美匹配编译逻辑。学完这个系列,你不仅理解了编译器,还掌握了函数式编程的高级技巧。

适合人群: 有函数式编程基础的开发者、F#/OCaml/Haskell用户、追求理论深度的学习者。


知识图谱:编译器实现全链路

graph TD
    A[源代码 Source Code] --> B[词法分析 Lexing]
    B --> C[Token流]
    C --> D[语法分析 Parsing]
    D --> E[抽象语法树 AST]
    E --> F[语义分析 Semantic Analysis]
    F --> G{实现策略}
    G -->|解释器| H[AST遍历求值]
    G -->|编译器| I[中间表示 IR]
    I --> J[优化 Optimization]
    J --> K[代码生成 Code Gen]
    K --> L[目标代码 Target]
    H --> M[执行结果]
    L --> M

    style A fill:#e1f5fe
    style E fill:#fff3e0
    style G fill:#f3e5f5
    style M fill:#e8f5e9
graph LR
    subgraph 入门级
        A1[Computerphile<br/>语言设计概念]
        A2[Alex The Dev<br/>Java编译器]
    end
    subgraph 进阶级
        B1[Pikuma<br/>C语言完整课程]
        B2[Make Programming Fun<br/>Go语言Crafting Interpreters]
    end
    subgraph 专家级
        C1[Tsoding<br/>C语言硬核实现]
        C2[F# Building a Compiler<br/>函数式编译器]
        C3[Jonathan Blow<br/>Jai工业级设计]
    end

    A1 --> B1
    A2 --> B1
    B1 --> C1
    B2 --> C2
    C1 --> C3

    style A1 fill:#c8e6c9
    style A2 fill:#c8e6c9
    style B1 fill:#fff9c4
    style B2 fill:#fff9c4
    style C1 fill:#ffccbc
    style C2 fill:#ffccbc
    style C3 fill:#ffccbc

学习路径建议

根据你的背景和目标,推荐以下学习顺序:

路径一:快速入门(2-3周) 1. 先看Computerphile的系列(1-2小时),建立概念框架 2. 跟着Alex The Dev动手写第一个简单编译器(5小时) 3. 选Pikuma或Crafting Interpreters深入学习

路径二:系统深入(2-3个月) 1. 购买Pikuma的完整课程,跟着用C实现"pinky"语言 2. 同时阅读《Crafting Interpreters》在线免费版 3. 用Go或Rust重新实现书中的Lox语言

路径三:工业级视野(持续学习) 1. 跟踪Jonathan Blow的Jai开发,理解真实语言设计决策 2. 研究F#编译器系列,掌握函数式编译器架构 3. 尝试自己设计一门DSL(领域特定语言)

延伸推荐

  1. Creel — 计算机科学底层原理,CPU设计、汇编语言、操作系统,为理解编译器后端提供硬件基础
  2. Low Level Learning — 操作系统内核开发、C语言底层编程,补充编译器目标平台知识
  3. Bisqwit — 芬兰传奇程序员,复古计算和底层编程,用C++手写NES模拟器等硬核项目
  4. nptelhrd (IIT Bombay) — 印度理工学院的编译器设计课程,理论体系最完整

参考来源

  1. Pikuma - Compilers, Interpreters & Formal Languages — Gustavo Pezzi的18小时编译器完整课程
  2. Computerphile - Creating Your Own Programming Language — Dr. Laurie Tratt的语言设计系列
  3. Jonathan Blow - A Programming Language for Games — Jai语言设计71集完整记录
  4. Tsoding - Coding an Interpreter in C from Scratch — C语言手写解释器实战
  5. 50 Best Programming YouTube Channels 2026 — 2026年度最佳编程频道综合排行

本文由「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学通信知识星球海报-扫码加入