1、 学学 号:号: 课课 程程 设设 计计 题题 目目 WHILE 循环语句的翻译程序设计循环语句的翻译程序设计 (递归下降法、输出四元式)(递归下降法、输出四元式) 学学 院院 计算机科学与技术计算机科学与技术 专专 业业 计算机科学与技术计算机科学与技术 班班 级级 计算机计算机班班 姓姓 名名 指导教师指导教师 2012 年 1 月 6 日 1 目目 录录 1问题描述 3 1.1 问题描述 . 3 1.2 主要任务 . 3 1.3 测试数据 . 3 2 文法及属性文法的描述 3 2.1 文法的描述 . 3 2.2 while-do 循环语句的文法 4 2.3 递归文法的优化 . 4 2.4
2、 属性文法的描述 . 5 3语法分析方法描述 6 3.1 程序设计对文法的要求 . 6 3.2 语法分析的思想 . 7 3.3 递归下降文法实现原理 . 7 3.4 中间代码形式 . 8 4 简要的分析与概要设计 8 41 全局程序的概要设计 8 4.2 词法分析 . 9 4.3 递归下降翻译器的设计 . 9 4.4 语法制导翻译 10 5 详细的算法描述 . 10 5.1 算法描述 10 5.2 运行结果 14 6. 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等) 15 6.1 研制过程 15 6.2 本设计的评价、特点 16 6.3 感受和体会 16 6.4 对程序改进的想法
3、 17 课程设计任务书课程设计任务书 2 学生姓名:学生姓名: 专业班级:专业班级: 计算机班计算机班 指导教师:指导教师: 工作单位:工作单位:计算机科学与技术学院计算机科学与技术学院 题目题目: WHILE: WHILE 循环语句的翻译程序设计(递归下降法、输出四元式)循环语句的翻译程序设计(递归下降法、输出四元式) 初始条件:初始条件: 理论:学完编译课程,掌握一种计算机高级语言的使用。 实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行 设计。 要求完成的主要任务要求完成的主要任务: : (包括课程设计工作量及其技术要求, 以及说明书撰写等具体要求) (1) 写出符
4、合给定的语法分析方法的文法及属性文法。 (2) 完成题目要求的中间代码四元式的描述。 (3) 写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。 (4) 编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 (5) 设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 1 系统描述(问题域描述) ; 2 文法及属性文法的描述; 3 语法分析方法描述及语法分析表设计; 4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计; 5 编译系统的概要设计; 6 详细的算法描述(流程图或伪代码) ; 7 软件的测试方法和测试结果; 8 研制报告(研制过程,本设计的
5、评价、特点、不足、收获与体会等) ; 9 参考文献(按公开发表的规范书写) 。 时间安排:时间安排: 设计安排一周:周 1、周 2:完成系统分析及设计。 周 3、周 4:完成程序调试及测试。 周 5:撰写课程设计报告。 设计验收安排:设计周的星期五第 1 节课开始到实验室进行上机验收。 设计报告书收取时间:设计周的次周星期一上午 10 点。 指导教师签名:指导教师签名: 20122012 年年 1 1 月月 6 6 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 2012012 2 年年 1 1 月月 6 6 日日 3 课程设计报告书 1问题描述 1.1 问题描述 设计一个 WHI
6、LE布尔表达式DO赋值语句循环语句的词法语法及语义分析程 序,语法分析选择递归下降法,采用用语法制导翻译输出中间代码四元式。 1.2 主要任务 通过设计、编制、调试一个 WHILE 循环语句的语法及语义分析程序,加深对语法及语 义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。 首先写出一个能识别 while 循环语句的文法,通过消除左递归使它符合 LL(1)即递归 下降法的要求,然后按照这个文法编写一个集词法分析,语法分析和语义分析为一体的程 序,该程序首先可以检查输入语句是否符合词法要求,若符合则继续识别输入的语句是否 符合 while 语句的文法,若符合则进行语义分析,输出用四地址代码表示的中间代码。 1.3 测试数据 编写好源代码后,进行调试,主要调试数据有:新建一个文本,输入一个 while 循环 语句的内容,保存;打开该文件,进行词法、语法的分析,给出分析结果