📘 编译器前端·语法树构建
30章 实战
⚡ 从词法到AST
完整版
01
词法分析基础
正则表达式
有限自动机
Token定义
02
手工构建词法分析器
状态转移图
关键字识别
标识符
03
词法分析器生成工具
Lex/Flex
正则规则
使用入门
04
语法分析概述
上下文无关文法
推导与规约
二义性
05
递归下降分析法
左递归消除
FIRST集
FOLLOW集
06
LL(1)分析器构建
预测分析表
表驱动分析
LL(1)文法
07
LR(0)分析器
项目集规范族
LR(0)分析表
DFA
08
SLR(1)与LR(1)分析器
冲突解决
向前看符号
LR(1)项目
09
LALR(1)分析器
合并状态
实战选择
LALR(1)
10
语法分析器生成工具
Yacc/Bison
语法规则
生成器
11
抽象语法树概念
AST vs 解析树
节点设计
层次
12
手工构建AST
递归下降创建
遍历打印
AST节点
13
AST节点类型
表达式节点
语句节点
声明节点
14
符号表基础
作用域管理
符号定义
引用绑定
15
符号表实现
哈希表
树形结构
嵌套作用域
16
类型系统入门
基本类型
复合类型
类型等价
17
语义分析
类型检查
类型推断
类型转换
18
声明与作用域分析
变量提升
重复声明
作用域
19
控制流分析
return检查
break/continue
合法性
20
中间代码生成概述
三地址码
四元式
三元式
21
表达式翻译
算术表达式
布尔表达式
中间代码
22
控制流语句翻译
if-else
while/for
中间代码
23
函数调用翻译
参数传递
返回值
中间表示
24
数组与结构体翻译
地址计算
元素访问
中间代码
25
中间代码优化入门
常量折叠
死代码消除
优化
26
基本块与流图
划分基本块
控制流图
CFG
27
数据流分析
到达定值
活跃变量
数据流
28
循环优化
循环不变式
强度削弱
外提
29
寄存器分配
图着色
溢出处理
分配
30
编译器前端实战项目
从源码到AST
完整实现
项目
公众号:蓝海资料掘金营,微信deep3321
公众号:蓝海资料掘金营,微信deep3321