1、 计算机科学系课程设计任务书计算机科学系课程设计任务书 题题 目目: 简单编译器的设计与实现 姓姓 名名: 学学 号号: 年年 级级: 专专 业业: 计算机科学与技术 指导教师指导教师: 职职 称称: 计算机科学系 2009 年 12 月 25 日 2 一、一、 课程设计的目的课程设计的目的 在学习程序设计语言编译原理课程过程中,结合各章节构造编译程序 的基本理论分别完成词法分析器、语法分析器和语义分析器实验,在基本实验 完成的基础上,逐步完成课程设计。针对自己的理解和学习,实现一个小编译 器括符号表的构造,词法分析,语法分析,目标代码生成等重要子程序,其中 词法分析、语法分析及语义分析功能必
2、须完成) ,并对其进行分析解释和总结, 同时将理论与实际应用结合起来,接受软件设计等开发过程的全面训练,从而 提高软件开发的能力。 二、二、 课程设计的任务课程设计的任务 (1)设计符号表 确定符号表的组织方式,一般应包括名字栏和信息栏, 其中名字栏作为关键 字。要考虑能够存储有关名字的信息,并可以高效地完成如下操作: a.查找:根据给定的名字,在符号表中查找其信息。如果该名字在符号表中 不存在,则将其加入到符号表中,否则返回指向该名字的指针; b.删除:从符号表中删除给定名字的表项。 (2)设计词法分析器 设计各单词的状态转换图,并为不同的单词设计种别码。将词法分析器设计 成供语法分析器调用
3、的子程序。功能包括: a. 具备预处理功能。 将不翻译的注释等符号先滤掉, 只保留要翻译的符号串, 即要求设计一个供词法分析调用的预处理子程序; b. 能够拼出语言中的各个单词; c. 将拼出的标识符填入符号表; d. 返回(种别码, 属性值) 。 (3)语法分析器 要求用预测分析法、递归下降分析法、算符优先分析法、SLR 分析法(几种 方法任选) ,实现对表达式、各种说明语句、控制语句进行语法分析。 (4)目标代码生成器 能完成指定寄存器个数的情况下将一中间代码程序段翻译成汇编语言目标 代码(汇编指令应包括加、减、乘、除) ,要求指令条数最少的情况下,尽量使 3 用寄存器,尽量少访问内存,这
4、样才能做到运行效率高。 三、课程设计要求三、课程设计要求 样本语言为 C-语言,实现简单的编译器,其中基本的语句要求必须实现, 其余部分可根据自己的实际情况选择实现。对主要代码给予解释和理解注释,各 函数和过程应有简要描述,有功能说明,有入口和出口参数说明。 四、四、 简单编译器的实现流程图简单编译器的实现流程图 五、五、 实现环境实现环境 Windows XP 操作系统、win-TC 运行环境 表 格 管 理 词法分析器 语法分析器 语义分析与中间代码产生器 优化器 目标代码生成器 出 错 处 理 源程序 单词符号 语法单位 中间代码 中间代码 目标代码 4 六、六、课程设计的详细过程课程设计的详细过程 (1 1) 设计词法分析器设计词法分析器 设计思想:设计思想: 要求:要求:1. 对单词的构词规则有明确的定义; 2. 编写的分析程序能够正确识别源程序中的单词符号; 3. 识别出的单词以的形式保存