目标:passcal-S语言编译程序的设计与实现
主要阶段:
- 需求分析
- 总体设计(软件功能描述、功能模块划分、软件结构图、符号表结构设计、模块间接口定义)
- 详细设计报告(模块功能、输入/输出、处理逻辑)、
- 编码实现(源程序、可执行程序)
- 测试报告(测试计划、测试用例、测试结构及分析)
功能模块部分
前端
词法分析
- 参照:
pascal-S
语言语法图 - 输入:原始
pascal-S
代码 - 实现方式:
- 输出:Tokens序列
语法分析
- 参照:
pascal-S
语法规则(文法产生式) - 输入:Tokens序列
- 实现方式:
- 输出:抽象语法树(AST)
语义分析
- 参照:
pascal-S
语法规则以及语义信息 - 输入:AST
- 实现方式:
- 输出:中间代码
后端
代码生成
- 参照:
- 输入:中间代码
- 实现方式:
- 输出:
C语言编译
- 参照:
- 输入:翻译好的C语言源代码
- 实现方式:调用系统上的C编译器
- 输出:可执行文件