3036数据结构394、程序设计与实现3941编译程序设计与实现3942程序实验结果39421待测源程序39422词法分析结果40423语法分析结果41424中间语言生成结果42425目标语言生成结果43426程序错误处理结果445、参考文献44
4
f编译原理课程设计报告
1、概述
本次课程设计的编译程序主要包括了词法分析器、语法分析器、中间代码生成器和目标代码生成器四部分,编译程序的输出结果包括了词法分析后的关键字表、界符表、标识符表和Toke
串,语法分析后的Select集和LL1分析表;中间代码生成器产生的四元式序列。最后除了完成设计所要求的内容之外,我们还做了一些扩展例如:设计了目标代码生成器来生成可执行的汇编程序;还设计了错误检查机制来查找源程序的错误并指出错误产生的大致位置。词法分析是编译程序的第一步操作,它的任务是:从左至右扫描源程序的字符串,按照一定的词法规则识别出一个个正确的字符,并转换成该字符相对应的Toke
码,最终生成一个完整的Toke
串以供语法分析使用。由此可知,词法分析是整个编译程序的基础,而执行词法分析的一系列操作的就是词法分析器。语法分析是编译程序的第二步操作也是编译程序的核心部分,其主要任务是:分析语法内容,确定语法结构同时生成Select集和LL1分析表。中间代码和目标代码的生成是对源程序的进一步操作,其任务是:根据词法分析产生的Toke
串和语法分析确定的语法结构来生成中间语言四元式和目标语言汇编语言程序。
2、课程设计任务及要求
21设计任务
一个简单文法的编译器前端的设计与实现定义一个简单程序设计语言文法(包括变量说明语句、算术运算表达式、赋值语句;扩展包括逻辑运算表达式、If语句、While语句等);扫描器设计实现;语法分析器设计实现;中间代码设计;
5
f编译原理课程设计报告
中间代码生成器设计实现。目标代码生成器设计实现
22设计要求
给出一个源程序文件,作为编译器前端的输入输出相关编译阶段的运行结果词法分析阶段:r