for循环语句翻译程序设计(简单优先法、三地址码)java

上传人:第*** 文档编号:61572953 上传时间:2018-12-04 格式:DOC 页数:23 大小:1.15MB
返回 下载 相关 举报
for循环语句翻译程序设计(简单优先法、三地址码)java_第1页
第1页 / 共23页
for循环语句翻译程序设计(简单优先法、三地址码)java_第2页
第2页 / 共23页
for循环语句翻译程序设计(简单优先法、三地址码)java_第3页
第3页 / 共23页
for循环语句翻译程序设计(简单优先法、三地址码)java_第4页
第4页 / 共23页
for循环语句翻译程序设计(简单优先法、三地址码)java_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《for循环语句翻译程序设计(简单优先法、三地址码)java》由会员分享,可在线阅读,更多相关《for循环语句翻译程序设计(简单优先法、三地址码)java(23页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学编译原理课内实践说明书学 号: 0121210340527课内实践报告 课程名称 编译原理 题 目FOR循环语句的翻译程序设计(简单优先法、输出三地址码)学 院计算机科学与技术专 业计算机科学与技术班 级1201姓 名李潇颖指导教师林泓2014年12月9日课内实践任务书学生姓名: 李潇颖 专业班级: 计算机1201班 指导教师: 林泓 工作单位:计算机科学与技术学院 题目: FOR循环语句的翻译程序设计(简单优先法、输出三地址码)初始条件:理论:学完编译课程,掌握一种计算机高级语言的使用。实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。要求完成的主要任务

2、: (包括课内实践工作量及其技术要求,以及说明书撰写等具体要求)(1) 写出符合给定的语法分析方法的文法及属性文法。(2) 完成题目要求的中间代码三地址码的描述。(3) 写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。(4) 编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。(5) 设计报告格式按附件要求书写。课内实践报告书正文的内容应包括:1 系统描述(问题域描述);2 文法及属性文法的描述;3 语法分析方法描述及语法分析表设计;4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计;5 编译系统的概要设计;6 详细的算法描述(流程图或伪代码);7 软件的

3、测试方法和测试结果;8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);9 参考文献(按公开发表的规范书写)。时间安排:设计安排一周:周1、周2:完成系统分析及设计。周3、周4:完成程序调试及测试。周5:撰写课内实践报告。设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。设计报告书收取时间:设计周的次周星期一上午10点。指导教师签名: 年 月 日系主任(或责任教师)签名: 目录1 系统描述(问题域描述)31.1设计目的31.2设计内容描述32.文法的描述33 语法分析方法描述及语法分析表设计43.1语法分析方法描述43.2 分析法操作步骤43.3优先关系矩阵54 中间

4、代码形式的描述65 编译系统的概要设计(主要函数)66 详细的算法描述(流程图)76.1词法分析过程76.2语法分析过程06.3三地址码的输出07 测试方法和测试结果18.心得体会49.代码(完整)510.本科生课内实践成绩评定表14FOR循环语句的翻译程序设计(简单优先法、输出三地址码)1 系统描述(问题域描述)1.1设计目的 通过学习编译原理的相关内容,设计并编写FOR循环语句的翻译程序,使用简单优先法,按三地址码输出,能够实现词法分析,语法和语义的分析,加深对所学知识的理解,并且能够熟练运用到实际当中。 1.2设计内容描述FOR循环语句的基本格式如下:FOR(表达式1;表达式2;表达式3

5、)赋值语句根据所给题目要求,设计出符合FOR循环语句的文法及属性文法的描述,语法分析方法以及三地址码的输出方式,罗列出词法分析和语法分析的流程,根据语法规则设计输入输出方法,简单优先法中的优先关系表格。设计好并且进行编译,设计若干输入输出用例(包括正确的输入和错误的输入,用来检查程序的完整性)。 2.文法的描述根据For语句的特点,制定的产生式规则及由产生式对应的语义动作如下:H-f(G;A;B)S; GOTOH-f(G;C;D)S; GOTOG-i1=i2 i1.CODE=i2.CODEA-i1=i2.CODE GOTO OVERB-id i.CODE=i.CODE+1C-i1i2 IFi1

6、.CODEia i.CODE=i.CODE-1S-j=M j.CODE=M.CODEM-E M.CODE=E.CODEE-W E.CODE=W.CODEW-W+U W.CODE=W.CODE+U.CODEW-W-U W.CODE=W.CODE-U.CODEW-U W.CODE=U.CODEU-T U.CODE=T.CODET-T*F T.CODE=T.CODE”F.CODET-T/F T.CODE=T.CODE/F.CODET-F T.CODE=F.CODEF-(E) F.CODE=(E.CODE)F-j F.CODE=j.CODE(备注:其中d表示-,a表示+) 3 语法分析方法描述及语法分

7、析表设计3.1语法分析方法描述本次课内实践要求使用简单优先关系方法。简单优先分析法的基本思想史对一个文法按照一定原则求出该文法所有符号即包括终结符和非终结符之间的优先关系确定归约过程中的句柄,它的归约实际上是一种规范归约。一个文法是简单优先文法必须满足以下条件(1) 在文法符号集V中,任意两个符号之间最多只有一种优先关系成立;(2) 在文法中任意两个产生式没有相同的右部。三种优先关系及其判定方法如下所示:(1) X=Y 表示X和Y的优先关系相等,当且仅当G中存在产生式规则AXY;(2) XY表示X的优先性比Y的优先性大,当且仅当G中存在产生式规则 ABD,且BX和DY;(4)对任何X,若文法开

8、始符号SX,则#。3.2 分析法操作步骤由简单优先分析法的基本思想设计的如下算法,首先要构造优先关系矩阵(如3.3所示),并将文法产生式保存,设置符号数组S:(1) 将输入符号串a1a2an # 依次逐个保存符号数组S中,直到遇到数组中第一个符号ai的优先性下一个待输入符号aj为止。(2) 数组当前符号ai为句柄尾,由此向左在数组中找句柄的头符号ak,即找到ak-1ak为止。(3) 由句柄akai在文法的产生式中查找右部为akai的产生式,若找到则用相应左部代替句柄,找不到则为出错,这是可断定输入串不是该文法的句子。(4) 重复(1)(2)(3),直到归约完输入符号串,数组中只剩文法的开始符号为止。 3.3优先关系矩阵HGABSCDMEWUTFf(;)i=-j+-*/#HG=A=B=S=C=D=ME=W=UT=Ff=(=;=

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号