FOR循环语句的翻译程序设计(递归下降法、输出四元式表示)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程名称编译原理课程设计
题目FOR循环语句的翻译程序设计(递
归下降法、输出四元式表示)学院计算机科学与技术
专业计算机科学与技术
班级计算机1001
姓名吴垂森
指导教师陈天煌
2012 年 1 月13 日
目录
课程设计任务书———————————————————- 3 1、系统描述————————————————————— 4 1.1、实验思想———————————————————— 4 1.2、设计内容———————————————————— 4
1.3、翻译过程———————————————————— 4
2、递归下降法———————————————————— 6 2.1、递归下降法的主要思想:—————————————6
2.2、用程序表示递归子程序的内部结构:————————7
3、四元式的表示:————————————————7
4、语法制导翻译———————————————————8 4.1、翻译任务的处理过程———————————————8 4.2、语法制导翻译:—————————————————8 4.3、基于属性文法的处理方法————————————-8
5、中间代码形式的描述及中间代码序列的结构设计————8
6、简要的分析与概要设计———————————————9 6.1、词法分析:———————————————————9 6.2、语法递归分析——————————————————10 6.3、制导翻译———————————————————-12
6.4、主函数————————————————————-13
7、测试方法和测试结果———————————————-14 7.1测试过程————————————————————-14
7.2测试结论————————————————————-16
8、课程设计总结——————————————————-17
9、参考文献————————————————————-18
本科生课程设计成绩评定表——————————————19
课程设计任务书
学生姓名:吴垂森专业班级:计算机1001班
指导教师:陈天煌工作单位:计算机科学与技术学院
题目: FOR循环语句的翻译程序设计(递归下降法、输出四元式表示)初始条件:
理论:学完编译课程,掌握一种计算机高级语言的使用。
实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
(1)写出符合给定的语法分析方法的文法及属性文法。
(2)完成题目要求的中间代码四元式表示的描述。
(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。
(4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
(5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:
1 系统描述(问题域描述);
2 文法及属性文法的描述;
3 语法分析方法描述及语法分析表设计;
4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计;
5 编译系统的概要设计;
6 详细的算法描述(流程图或伪代码);
7 软件的测试方法和测试结果;
8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);
9 参考文献(按公开发表的规范书写)。
时间安排:
设计安排一周:周1、周2:完成系统分析及设计。
周3、周4:完成程序调试及测试。
周5:撰写课程设计报告。
设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。
设计报告书收取时间:设计周的次周星期一上午10点。
指导教师签名:年月日
系主任(或责任教师)签名:年月日
FOR循环语句的翻译程序设计
——递归下降法、输出四元式表示
1、系统描述
1.1、实验思想
通过设计、编制、调试一个FOR循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,实现词法分析程序对单词序列的词法检查和分析,并且实现对单词序列的语法分析、语义分析以及中间代码生成。
1.2、设计内容
本设计按照要求设计出for语句的简单文法,并使用递归下降分析法对用户输入的程序进行分析和翻译。
对下列正确的程序输入:
for i=1 step 1 until 10 do k=j #
结果程序要对该输入进行词法分析,然后利用递归下降的分析法对词法分析得到的单词序列进行语法分析,经过语法制导翻译显示出等价的三地址表示的中间代码。
对于错误的程序输入,如:
For i=1 step 1 until 10 k=j#
结果程序要指出程序出错。
1.3、翻译过程
1.3.1、词法分析:
词法分析是计算机科学中将字符序列转换为单词(Token)序列的过程。进行语法分析的程序或者函数叫作词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。
词法分析是编译过程中的第一个阶段,在语法分析前进行。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。简化设计、改进编译效率、增加编译系统的可移植性。词法分析是编制一个读单词的过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。