- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DO WHILE循环语句的翻译 递归下降法 输出三地址
DO-WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)系统描述1.1目的通过设计,编制,调试一个DO-WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的此法检查和分析。1.2设计内容及步骤 对DO 语句 WHILE 条件写出符合给定的语法分析方法的文法及属性文法。完成题目要求的中间代码三地址表示的描述。写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。1.3 初始条件理论:学完编译课程,掌握一种计算机高级语言的使用。实践:计算机实验室提供计算机及软件环境。如果有计算机可以在其上进行设计。1.4 开发平台Windows环境下使用Visual C++文法及属性文法的描述2.1 DO-WHILE循环语句的文法文法G(S)如下:S-do{A}while(P); A-id=E; E-TE E-+TE | -TE | e T-FT T-*FT | /FT | e F-(E) | id P-E rop idrop- | | = | = | != | ==2.2 DO-WHILE循环语句的属性文法产生式语义规则S→do A while P S.addr:=newlabel;E.true:=newlabel;E.false:=S.next;S1.next:=S.begin;S.code:=gen(S.begin’:’‖E。code‖gen(E.true’:’) ‖S1.code‖gen(‘goto’ S.begin)语法分析方法描述及语法分析表设计3.1语法分析方法3.11递归下降法递归下降法是比较简单直观易于构造的一种语法分析方法。递归下降法的主要思想是:对每个非终结符按其产生式结构写出相应语法分析递归过程,每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选时能够按LL(1)形式可唯一确定选择某个候选式进行推导。因为文法递归相应子程序也递归,子程序的结构与产生式结构几乎一致。所以称此种方法称为递归子程序法或递归下降法。3.12递归下降法的缺点对文法的要求高,必须满足LL(1)文法;由于递归调用多,所以速度慢,占用空间多。中间代码形式描述及中间代码序列的结构设计4.1三地址代码在本程序中用到了三地址语句的输出包括以下的种类:赋值语句:x:= y op z复制语句:x:= y条件转移语句:if x relop y goto L 例如,本程序中语句while (B) S ,可以输出三地址代码为:if B goto L else goto Lnext;而E - (E)F可以输出三地址代码为:E1:= (E2) F。4.2本程序中的三地址代码 S - while (B) SL0:=if (B) goto L1 else goto LnextS - i=EL:= i=EB - E relop EB:= E1 relop E2relop - relop:= relop - =relop:= =relop - relop:= E - (E)FE1:= (E2) FE - iFE:= I FE - nFE:= n FF - +EFF1:= +E F2F - -EFF1:= -E F2F - *EFF1:= *E F2F - /EFF1:= /E F2F -εF:= ε图2 三地址代码编译系统的概要设计程序是由词法分析和语法分析两部分构成,分别编写了两个类进行实现,类名分别为lex,analyse;词法分析亿用户在proc.txt文件中所写的程序为输入,判断程序中是否还有无法识别的字符,若字符完全合法,分析正常进行,将关键字,变量,数字以及其他字符分类进行文件写入保存,同时利用几个全局变量作为语法分析程序的输入。语法分析是以词法分析的结果为输入,验证输入流中各种符号是否符合语法规则,若不符合,显示出错信息,终止程序执行。否则在语法分析成功时显示生成的中间代码的三地址表示,同时也需要构建语法分析的程序流程图。本次课程设计中实现三地址表示使用的数据结构有栈和数组,在语法分析的同时,使文法符号对应的属性值val(string型,若为double型,则使用函数将其转换为string型)在结合判定运算符优先级的函数precede(char,char)的基础上执行进栈和出栈操作,使得赋值语句和do……while()循环语句的语义分析正常进行,中间代码能够正确的输出表示。流程图测设结果7.1调试过程程序编写完成后,进行调试,出现如下错误:程序编写过程中有些地方由于输入法切换不及时,导致有些地方分号“;”错误地在中文状态下去输入,使程序调试时出现语法错误;此外,由于程序编写过程中存在很多条件语句及循环语句的嵌套
您可能关注的文档
最近下载
- 水闸横剖面图识读水利工程图识读与绘制.pptx VIP
- 国家建筑标准设计图集20S515 钢筋混凝土及砖砌排水检查井.pdf VIP
- 救援技术毕业论文题目(647个).doc VIP
- l临床医生三基考试试题及答案.doc VIP
- 苏教版高一生物必修一知识点总结.doc VIP
- 12J7-3-内装修吊顶标准规范(OCR).pdf VIP
- 全国翻译专业资格(水平)考试--CATTI精品课件.ppt VIP
- 《深化国有企业改革》课件.ppt VIP
- 基于AI技术的增强型汽车动力电池预测方法及系统.pdf VIP
- (2025秋新版)部编版三年级道德与法治上册《第10课《公共场所的文明素养》 教学设计.docx VIP
原创力文档


文档评论(0)