01
词法分析基础
什么是词法分析 · 词法分析器的作用 · 与语法分析器的关系
基础概念
02
正则表达式入门
正则语法 · 字符类 · 量词 · 分组与捕获
正则模式
03
有限自动机理论
DFA · NFA · 从正则表达式到NFA
自动机理论
04
词法分析器手工实现
手工编写 · 状态转换图 · 代码实现技巧
实现编码
05
Lex工具入门
Lex/Flex简介 · 文件结构 · 规则定义与动作
工具Lex
06
Lex高级特性
开始条件 · 状态管理 · 歧义处理 · 错误恢复
进阶Lex
07
语法分析概述
上下文无关文法 · 推导与归约 · 语法分析树
语法概述
08
文法与语言
BNF范式 · EBNF扩展 · 乔姆斯基谱系
文法分类
09
自顶向下分析
递归下降 · 预测分析 · LL(1)文法
LL(1)递归
10
FIRST与FOLLOW集
FIRST集 · FOLLOW集 · 预测分析表构建
集合表
11
LL(1)分析器实现
预测分析算法 · 表驱动 · 错误处理
实现LL(1)
12
自底向上分析
移进-归约 · 句柄与活前缀 · LR分析概述
LR归约
13
LR(0)分析
LR(0)项目集 · 自动机 · 分析表构建
LR(0)表
14
SLR(1)分析
SLR(1)改进 · 冲突解决 · 分析表构建
SLR(1)冲突
15
LR(1)与LALR(1)
LR(1)项目集 · LALR(1)合并 · 能力对比
LR(1)LALR
16
Yacc/Bison入门
Yacc/Bison简介 · 语法规则定义 · 语义动作
YaccBison
17
Yacc/Bison高级
优先级与结合性 · 歧义处理 · 错误恢复
进阶歧义
18
抽象语法树(AST)
AST概念 · 与语法树的区别 · 节点设计
AST结构
19
AST构建实战
在Yacc中构建AST · 节点遍历 · 树形打印
实战Yacc
20
符号表管理
符号表设计 · 作用域管理 · 类型信息存储
符号表作用域
21
语义分析基础
类型检查 · 作用域解析 · 语义规则定义
语义检查
22
中间代码生成
三地址码 · 四元式 · 控制流语句翻译
中间码IR
23
表达式翻译
算术表达式 · 布尔表达式 · 类型转换处理
表达式翻译
24
控制流翻译
if-else · while · for循环的中间代码生成
控制流循环
25
函数调用翻译
函数定义 · 参数传递 · 返回语句中间代码
函数调用
26
代码优化入门
常量折叠 · 死代码消除 · 公共子表达式提取
优化性能
27
目标代码生成
指令选择 · 寄存器分配 · 栈帧管理
代码生成后端
28
错误处理机制
词法错误 · 语法错误 · 语义错误恢复策略
错误恢复
29
完整编译器实战
从源码到可执行文件的完整流程整合
实战整合
30
现代编译工具链
LLVM简介 · Clang前端 · 编译器基础设施的未来
LLVM前沿