跳到内容
第十一卷

编译原理与形式语言

从形式语言、词法与语法分析一路走到中间表示、优化和代码生成。

在语言工坊里,你们比较了不同语言的选择;来到编译高塔,任务变成亲手解释这些选择如何落地。一个源文件要经过识别、解析、检查、变换和生成,才能成为机器执行的程序,每一步都有清晰的输入、输出和错误边界。

旅程位置:数学瞭望塔 → 编译高塔(把语言规则变成执行过程)→ 数据预言厅

前置要求

需要系统基础(Vol 3),了解 C 语言和基本数据结构。

完成标志:理解乔姆斯基谱系、DFA/NFA、CFG、图灵机;能实现词法/语法分析器;理解代码生成流程。

Part 1: 形式语言理论

第1章 形式语言与自动机概述 已完成

乔姆斯基谱系四层、文法定义、语言即字符串集合。

第2章 DFA/NFA 与正则语言 已完成

状态图、子集构造法、Thompson 构造法。

第3章 上下文无关文法与下推自动机 已完成

推导树、二义性消除、PDA 栈匹配、LL/LR。

第4章 图灵机与可计算性 已完成

TM 七要素、停机问题、归约、P/NP 直觉。

Part 2: 编译器实现

第5章 词法分析 已完成

手写 C 状态机、最长匹配、flex 规则、词法+语法协作。

第6章 语法分析与 AST 已完成

递归下降 C 代码、CST vs AST、LL vs LR。

第7章 语义分析与中间代码 已完成

符号表、类型检查、三地址码、SSA。

第8章 代码生成与优化 已完成

常量折叠/CSE、图着色寄存器分配、循环优化、JIT。

本卷共 8 章,当前拆分为 22 篇课时;专业内容初稿已完成,等待集中校验

完整课目

本卷按“章 → 编号课次”组织。8.1、8.2 这样的文件是第 8 章下连续的短课,不是两个重复章节。

第 1 章:字母表、字符串与文法:先定义什么算合法

第 2 章:DFA 设计与执行:让每个状态都有明确含义

第 3 章:CFG、推导树与二义性:让嵌套结构只有一种解释

第 4 章:图灵机、可识别与可判定:给算法能力画一条边界

第 5 章:Token 契约与源位置:字符流怎样交给解析器

第 6 章:递归下降与 AST:把优先级写进调用结构

第 7 章:名称解析与作用域:同一个名字究竟指向谁

第 8 章:数据流分析与优化合法性:删掉的代码为什么真的能删

Built with VitePress | Software Systems Atlas