WHILE循环语句翻译程序设计(简单优先法,三地址输出).docVIP

WHILE循环语句翻译程序设计(简单优先法,三地址输出).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WHILE循环语句翻译程序设计(简单优先法,三地址输出)

目录 1 问题域描述..........................................3 2 文法及属性文法的描述.........................3 2.1 WHILE循环语句的文法................................3 2.2 WHILE循环语句的属性文法............................4 3 语法分析方法及中间代码形式的描述................4 3.1语法分析方法........................................4 3.2中间代码形式描述....................................6 4 编译系统的概要设计.................................7 4.1词法分析............................................7 4.2语法制导翻译........................................8 5 详细的算法描述.....................................8 5.1 文法设计...........................................8 5.2 算法描述...........................................8 5.3 源程序代码.........................................9 6 软件的调试过程和结果测试.........................19 6.1调试过程............................................19 6.2结果测试............................................19 7 使用说明............................................20 8 课设总结............................................20 9 参考文献.............................................22 WHILE循环语句的翻译程序设计 (简单优先法、输出三地址表示) 1 问题域描述 while循环语句的翻译程序设计(简单优先法,输出单地址表示),要求完成: 用C++语言正确编写程序,完成WHILE循环语句的翻译程序设计。 求能正确进行词法分析,语法分析,并能正确的输出预期结果。 根据指定的文法,判定程序的正确性。 本次课程设计中要求设计一个WHILE循环语句的词法﹑语法及语义分析程序,语法分析选择简单优先法,采用语法制导翻译输出中间代码三元式。通过设计、编制、调试一个 WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,实现功能。 while循环语句的格式为:,其中A可为一个或多个赋值语句。 本次课程设计中系统首先要进行词法分析,即从左到右逐个进行扫描,产生一个个的单词序列,作为语法分析的输入而继续编译过程。 该程序的语法,判断输入语句是否满足循环语句的文法。通过对语句进行分析,看是否能通过给定的输入串归约到文法的开始符号。在语法分析的同时进行语义分析,最后输出的代码。 2 文法及属性文法的描述 2.1WHILE循环语句的文法 定义一个文法,文法G(S)如下: S- while(P){A}; A-id=E; E-TE E-+TE | -TE | e T-FT T-*FT | /FT | e F-(E) | id P-E rop id rop- | | = | = | != | == 2.2 WHILE循环语句的属性文法 产生式 语义规则 S→while P{A} 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 语法分析方法及中间代码形式的描述 3.1语法分析方法 3.1.1简单优先法 简单优先分析法是按照文法符号(终结符和非终结)的优先关系确定句柄的,因此我们首先介绍任意两个文法符号之间的优先关系是怎样确定的,及如何构造优先关系表。 首先定义优先关系的表示: X=Y

文档评论(0)

mi80868668 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档