《编译原理》实验报告(第三次)
学号: 1230904XXXX
姓名: 段 X X
时间: 2026/5/22
CQUT编译原理实验报告【语义分析和中间代码生成实验】
- 《编译原理》实验报告(第三次)
- 1 实验目的
- 2 实验内容
- 2.1 语义分析实验
- 2.2 中间代码生成实验
- 3 实验方案
- 3.1 方案描述
- 3.1.1 语义分析模块
- 1.核心数据结构
- 2.语义分析总流程
- 3.AST 解析与重构
- 4.符号表与作用域管理
- 5.语义错误检测规则
- 6.核心函数说明
- 3.1.2 中间代码生成模块
- 1.核心数据结构
- 2.中间代码生成总流程
- 3.词法分析器(Lexer)
- 4.递归下降语法分析与语法制导翻译
- 5.回填与跳转管理
- 6.临时变量管理
- 3.2 方案分析
- 3.2.1 语义分析方案优劣
- 1.优势
- 2.劣势与局限性
- 3.2.2 中间代码生成方案优劣
- 1.优势
- 2.劣势与局限性
- 3.2.3 方案对比与选择依据
- 4 实验测试
- 4.1 语义分析实验测试
- 4.2 中间代码生成实验测试
- 5 实验结论
- 5.1 整体实验总结
- 5.2 核心问题与解决方案复盘
- 5.3 实验收获与心得
- 5.4 实验不足与优化改进方向
- 6 实验源代码
- 1.实验一语义分析(python语言)
- 2.实验二中间代码生成(python语言)
- 7 实验报告(电子版Word文档)
- 1.编译原理实验报告【语义分析和中间代码生成实验】
- 2.解压包密码
- 8 实验源代码(python语言)
- 1.编译原理实验源代码【语义分析和中间代码生成实验】
- 2.解压包密码
| 教师评分 | 评分点1:实验方案描述A:实验方案描述清楚、详细B:实验方案描述比较清楚、详细 C:实验方案描述基本清楚、详细D:实验方案描述不太清楚、详细E:实验方案描述不清楚、不详细 |
|---|---|
| 评分点2:实验方案对比分析A:能从多个维度对不同的实验方案进行对比,并有深刻的分析B:对不同的实验方案进行对比的维度较多,并有比较深刻的分析C:对不同的实验方案进行对比的维度较少,并有一定的分析D:对不同的实验方案进行对比的维度较少或分析较粗浅E:只有一种实验方案,或没有实验方案的对比分析 |
1 实验目的
1.掌握抽象语法树(AST)解析方法,能够将文本格式的 AST 重构为内存树形结构,为后续语义检查提供数据基础。
2.理解符号表的核心作用,设计并实现支持嵌套作用域的符号表管理机制,完成常量表、变量表、函数表的构建与持久化输出。
3.掌握 Sample 语言10 类核心语义错误的检测规则与定位方法,实现错误局部化记录、去重与标准化输出。
4.理解语法制导翻译与中间代码生成原理,掌握四元式的数据结构设计、临时变量管理与真假链回填算法。
5.实现赋值表达式、布尔表达式、控制语句(if/while/for/do-while)、函数调用与返回的四元式翻译,完成编译器前端到中端的流程衔接。
6.严格遵循实验输入输出规范,实现多文