欢迎进入「编译原理」实验模块!本实验将带你探索编译器的核心工作机制,涵盖词法分析、语法分析、语义分析等关键阶段。通过实践操作,你将深入理解程序从源代码到目标代码的转换过程。
实验目标 🎯
- 掌握编译器的基本工作流程
- 实现简单的词法分析器(Lexical Analyzer)
- 构建语法分析树(Syntax Tree)
- 理解中间代码生成与优化技术
核心实验内容 📚
词法分析 🧾
- 将字符序列转换为标记(tokens)
- 支持关键字识别(如
if
,else
) - 处理运算符(
+
,-
,*
,/
)与分隔符((
,)
,{
,}
)词法分析器
语法分析 🌳
- 根据语法规则构建抽象语法树(AST)
- 实现递归下降解析器或LR解析器
- 检测语法错误并给出提示语法分析树
中间代码生成 📦
- 将AST转换为三地址码(Three-Address Code)
- 示例:
x = a + b
→t1 = a + b
,x = t1
- 探索寄存器分配策略中间代码
扩展学习 🧭
如需深入了解编译器优化技术,可访问 course-center/compiler_principles/optimization 获取详细资料。该模块包含数据流分析与代码优化算法的实践案例。