- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- unit5Do_yu_want_to_watch_a_game_show导学案.doc
- Unit5_Do_ou_want_to_watch_a_game_show知识点.doc
- Unit5《Wha does she do》教学设计.doc
- unit5导学案Mcrosoft Word 文档.doc
- Unit6 At farm东莞市塘厦第一小学欧阳梦倩.doc
- Unit6 In Nature Park教案.doc
- Unit6 In nature park第一课时(五年级).doc
- Unit6 Planing for the weekend Part A.doc
- Unit6 SecionA设计教学(1a-1c).doc
- Unit6 Trael ---Section B _朱秋瑾.doc
文档评论(0)