FOR循环语句的翻译程序设计(简单优先法、输出四元式)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号:0120810340631
课程设计
题目FOR循环语句的翻译程序设计(简
单优先法、输出四元式)
学院计算机科学与技术
专业计算机科学与技术
班级0806
姓名张军
指导教师郭羽成
2011 年 1 月7 日
课程设计任务书
学生姓名:张军专业班级:计算机0806班
指导教师:郭羽成工作单位:计算机科学与技术学院
题目: FOR循环语句的翻译程序设计(简单优先法、输出四元式)
初始条件:
理论:学完编译课程,掌握一种计算机高级语言的使用。
实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体
要求)
(1)写出符合给定的语法分析方法的文法及属性文法。
(2)完成题目要求的中间代码四元式的描述。
(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。
(4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
(5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:
1 系统描述(问题域描述);
2 文法及属性文法的描述;
3 语法分析方法描述及语法分析表设计;
4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计;
5 编译系统的概要设计;
6 详细的算法描述(流程图或伪代码);
7 软件的测试方法和测试结果;
8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);
9 参考文献(按公开发表的规范书写)。
时间安排:
设计安排一周:周1、周2:完成系统分析及设计。
周3、周4:完成程序调试及测试。
周5:撰写课程设计报告。
设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。
设计报告书收取时间:设计周的次周星期一上午10点。
指导教师签名: 2011年 1月 7日
系主任(或责任教师)签名: 2011年 1月 7日
FOR循环语句的翻译程序设计(简单优先
法、输出四元式)
1 系统描述(问题域描述)
1.1设计目的
通过学习编译原理的相关内容,设计并编写FOR循环语句的翻译程序,使用简单优先法,按四元式输出,能够实现词法分析,语法和语义的分析,加深对所学知识的理解,并且能够熟练运用到实际当中。
1.2设计内容描述
FOR循环语句的基本格式如下:
FOR(表达式1;表达式2;表达式3)
根据所给题目要求,设计出符合FOR循环语句的文法及属性文法的描述,语法分析方法以及四元式的输出方式,罗列出词法分析和语法分析的流程,根据语法规则设计输入输出方法,简单优先法中的优先关系表格。设计好并且进行编译,设计若干输入输出用例(包括正确的输入和错误的输入,用来检查程序的完整性),例如:For(i=0;i<50;i++){m=m+j;} //正确输入
For(i=0;i<60i++){} //错误输入
对于错误的输入,最好设计成能够报错输入位置。
2.文法及属性文法的描述
由For语句的特点,制定的产生式规则如下(COUNT表示常数,ID表示标识符):S=>(A;B;C){H;}│(A;D;E){H;}
A=>ID=COUNT
B=>ID C=>ID++ D=>ID>COUNT E=>ID-- H=>ID 1=ID 2 +ID 3 │ID 1 =ID 2 +COUNT│ID 1 =COUNT+ID 2 由产生式对应的语义动作: S=>(A;B;C){H;}│(A;D;E){H;} GOTO; A=>ID=COUNT ID.CODE=COUNT.CODE; B=>ID C=>ID++ ID.CODE=ID.CODE+1; D=>ID>COUNT IF ID.CODE<=COUNT.CODE GOTO OVER; E=>ID-- ID.CODE=ID.CODE-1; H=>ID 1=ID 2 +ID 3 │ID 1 =ID 2 +COUNT ID 1 .CODE=ID 2 .CODE+ID 3 .CODE OR │ID 1 =COUNT+ID 2 ID 1 .CODE=ID 2 .CODE+COUNT OR ID 1.CODE=COUNT+ID 2 .CODE 3 语法分析方法描述及语法分析表设计 3.1语法分析方法描述 本次课程设计要求使用简单优先关系方法。 简单优先分析法的基本思想史对一个文法按照一定原则求出该文法所有符号即包括终结符和非终结符之间的优先关系确定归约过程中的句柄,它的归约实际上是一种规范归约。一个文法是简单优先文法必须满足以下条件 (1)在文法符号集V中,任意两个符号之间最多只有一种优先关系成立; (2)在文法中任意两个产生式没有相同的右部。 三种优先关系及其判定方法如下所示: (1)X=Y 表示X和Y的优先关系相等,当且仅当G中存在产生式规则A→…XY…; (2)X A→…XB…,且B Y…; (3)X>Y表示X的优先性比Y的优先性大,当且仅当G中存在产生式规则 A→…BD…,且B…X和D Y…;