编译原理课程设计-for语句的翻译程序设计(简单优 先法、输出三地址码)

编译原理课程设计-for语句的翻译程序设计(简单优 先法、输出三地址码)

ID:9168630

大小:116.60 KB

页数:47页

时间:2018-04-20

编译原理课程设计-for语句的翻译程序设计(简单优 先法、输出三地址码)_第1页
编译原理课程设计-for语句的翻译程序设计(简单优 先法、输出三地址码)_第2页
编译原理课程设计-for语句的翻译程序设计(简单优 先法、输出三地址码)_第3页
编译原理课程设计-for语句的翻译程序设计(简单优 先法、输出三地址码)_第4页
编译原理课程设计-for语句的翻译程序设计(简单优 先法、输出三地址码)_第5页
资源描述:

《编译原理课程设计-for语句的翻译程序设计(简单优 先法、输出三地址码)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、武汉理工大学《编译原理》课内实践说明书学号:22课程设计课程编译原理题目For语句的翻译程序设计(简单优先法、输出三地址码)学院计算机科学与技术学院专业计算机科学与技术班级计算机1404姓名王承禹武汉理工大学《编译原理》课内实践说明书指导教师林泓2016年12月27日武汉理工大学《编译原理》课内实践说明书目录1系统描述21.1设计目的21.2设计内容描述22文法及属性文法的描述23语法分析方法描述及语法分析表设计33.1语法分析方法描述33.2分析法操作步骤43.3优先关系矩阵54中间代码形式的描述及

2、中间代码序列的结构设计54.1中间代码形式55编译系统的概要设计65.1数据结构65.2模块设计65.2.1词法分析模块75.2.2语法、语义分析模块75.2.3主控模块116详细的算法描述116.1词法分析算法116.2语法分析算法123武汉理工大学《编译原理》课内实践说明书6.3语义分析算法127软件的测试方法和测试结果138本设计的评价、特点、149收获与体会1410核心代码16成绩评定表273武汉理工大学《编译原理》课内实践说明书For语句的翻译程序设计(简单优先法、输出三地址码)1系统描述1

3、.1设计目的通过学习编译原理的相关内容,设计并编写FOR循环语句的翻译程序,使用简单优先法,按三地址码输出,能够实现词法分析,语法和语义的分析,加深对所学知识的理解,并且能够熟练运用到实际当中。1.2设计内容描述FOR循环语句的基本格式如下:FORi=EstepEuntilEdoStmt根据所给题目要求,设计出符合FOR循环语句的文法及属性文法的描述,语法分析方法以及三地址码的输出方式,罗列出词法分析和语法分析的流程,根据语法规则设计输入输出方法,简单优先法中的优先关系表格。设计好并且进行编译,设计若

4、干输入输出用例(包括正确的输入和错误的输入,用来检查程序的完整性)。2文法及属性文法的描述根据For语句的特点,制定的产生式规则及由产生式对应的语义动作如下:46武汉理工大学《编译原理》课内实践说明书F1->fori=E1{emit(entry(i),'=',E1.place);F1.place=entry(i);/*保存控制变量在符号表中的位置*/F1.chain=nextstat;emit('goto'--);/*gotoOVER*/F1.codebegin=nextstat;/*保存AGAIN的

5、地址*/}F2->F1stepE2{F2.codebegin=F1.codebegin;F2.place=F1.place;emit(F1.place'='E2.place'+'F1.place);backatch(F1.chain,nextstat);}F3->F2untilE3{F3.codebegin=F2.codebegin;q=nextstat;emit('if'F2.place,'<='E3.place,'goto'q+2);/*若i<=E3转去执行循环体的第一个三地址码*/F3.chai

6、n=nextstat;emit('goto'--)/*转离循环*/}S->F3doStmt{emit('goto'F3.codebegin)/*gotoAGAIN*/backpatch(Stmt.chain,F3.codebegin);Stmt.chain=F3.chain/*转离循环的转移目标留待外层S时再回填*/}46武汉理工大学《编译原理》课内实践说明书3语法分析方法描述及语法分析表设计3.1语法分析方法描述本次课内实践要求使用简单优先关系方法。简单优先分析法的基本思想史对一个文法按照一定原则求

7、出该文法所有符号即包括终结符和非终结符之间的优先关系确定归约过程中的句柄,它的归约实际上是一种规范归约。一个文法是简单优先文法必须满足以下条件(1)在文法符号集V中,任意两个符号之间最多只有一种优先关系成立;(2)在文法中任意两个产生式没有相同的右部。三种优先关系及其判定方法如下所示:(1)X=Y表示X和Y的优先关系相等,当且仅当G中存在产生式规则A→…XY…;(2)XY表示X的优先性比Y的优先性大,当且仅当

8、G中存在产生式规则A→…BD…,且B…X和DY…;(4)对任何X,若文法开始符号S→X…,则##。3.2分析法操作步骤46武汉理工大学《编译原理》课内实践说明书(1)由简单优先分析法的基本思想设计的如下算法,首先要构造优先关系矩阵(如3.3所示),并将文法产生式保存,设置符号数组S:(2)将输入符号串a1a2…an#依次逐个保存符号数组S中,直到遇到数组中第一个符号ai的优先性>下一个待输入符号aj为止。(3)数组当前符号ai为句柄

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。