学 号: 0120910340527 课 程 设 计
题 目 学 院 专 业 班 级 姓 名 指导教师
WHILE循环语句的翻译程序设计(LR方法、输出三地址表示)
计算机科学与技术学院 计算机科学与技术专业
sy0901 李广田 彭德巍
2011 年 1 月 5 日
武汉理工大学《编译原理》课程设计
课程设计任务书
学生姓名: 李广田 专业班级: 计算机sy0901班 指导教师: 彭德巍 工作单位:计算机科学与技术学院 题目: WHILE循环语句的翻译程序设计(LR方法、输出三地址表示) 初始条件:
理论:学完编译课程,掌握一种计算机高级语言的使用。
实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进
行设计。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体
要求)
(1) 写出符合给定的语法分析方法的文法及属性文法。 (2) 完成题目要求的中间代码三地址表示的描述。
(3) 写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。 (4) 编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 (5) 设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:
1 系统描述(问题域描述); 2 文法及属性文法的描述;
3 语法分析方法描述及语法分析表设计;
4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计; 5 编译系统的概要设计;
6 详细的算法描述(流程图或伪代码); 7 软件的测试方法和测试结果;
8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等); 9 参考文献(按公开发表的规范书写)。
时间安排:
设计安排一周:周1、周2:完成系统分析及设计。
周3、周4:完成程序调试及测试。 周5:撰写课程设计报告。
设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。 设计报告书收取时间:设计周的次周星期一上午10点。
指导教师签名: 2011年 12月 23日
1
武汉理工大学《编译原理》课程设计
目录
1、系统描述 ............................................................... 3 2、文法及属性文法的描述 ................................................... 3
2.1 文法的描述 ........................................................ 3 2.2 属性文法的描述 .................................................... 3 3、语法分析方法描述及语法分析表设计 ....................................... 4
3.1、 LR(0)分析方法描述 ............................................. 4 3.2、 语法分析表设计 .................................................. 4
3.2.1识别文法活前缀的DFA .......................................... 4 3.2.2 LR(0)分析表 ............................................... 5
4、中间代码形式的描述及中间代码序列的结构设计 ............................. 6 5、编译系统的概要设计 ..................................................... 7
5.1、词法分析 ......................................................... 7 5.2、语法分析 ......................................................... 7 5.3、语法制导翻译 ..................................................... 9 6 、详细的算法描述 ........................................................ 9 7、软件的测试方法和测试结果 .............................................. 16
7.1测试过程及截图 .................................................... 16
7.1.1正确的测试过程 .............................................. 16 7.1.2词法分析出错 ................................................ 17 7.1.3语法分析出错 ................................................ 17 7.2、输入文件 ........................................................ 17 7.3、输出文件 ........................................................ 18 8、课程设计总结 .......................................................... 18 9、参考文献 .............................................................. 19
2
武汉理工大学《编译原理》课程设计
WHILE循环语句的翻译程序设计 (LR方法、输出三地址表示)
1、系统描述
通过设计、编制、调试一个WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。用语法制导完成语义分析,并将形成的中间代码以三地址码的形式输出。
2、文法及属性文法的描述
2.1 文法的描述
该文法的产生式如下所示:
(1)S->while(B){E} (2)E->AE
(3)E->A
(4)A->iPA
(5)A->i (6)B->iTi (7)B->i
其中while、( 、) 、{ 、} 、P、T 、 ; 和i均为终结符,而S、A、B、E这些大写字母均为非终结符。T表示比较运算符,P表示算术运算符,i表示合法标识符。
2.2 属性文法的描述
对该文法的属性文法描述如下:
(1) S->while(B){E} prinf(if B goto E else goto next) (2) E->AE print(E.val = A.val·E.val) (3) E->A print(E.val = A.val)
(4) A->i P A print(A= i.Val P A.Val) (5) A->i; A.Val = i;
3
相关推荐: