- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
条件语句的翻译分析程序设计
条件语句的翻译分析程序设计
条件语句的翻译分析程序设计
--LR方法、输出四元式
1.问题描述
对条件语句: if 〈布尔表达式〉〈赋值语句〉 else 〈赋值语句〉, 进行词法,语法分析,并根据语法制导翻译方法将条件语句翻译成四元式中间代码形式,最后输出翻译后的四元式代码。
2.文法及属性文法描述
2.1 if-else语句的LR文法:
采用LR方法,因此可以得到如下文法:
G[S]: S→if(B) S else S
S→if(B)S
S→i=E
B→BB
B→B||B
B→!B
B→E relop E
E→E+E
E→E*E
E→-E
E→(E)
E→i
其中relop是终结符号,代表关系运算符,=,,=,!=等。
通过一遍扫描来产生布尔表达式和控制语句的代码的主要问题在于,当生成某些转移语句时还不知道该语句将要转移到的目标是什么。为了解决这个问题,可以在生成形式分之的跳转指令时暂时不确定跳转目标,而建立一个链表,把转向这个目标的跳转指令的标号键入这个链表。一旦目标确定后再把它填入有关的跳转指令中,因此将上述文法扩展为:
P→SM
S→if(B)M1S1NelseM2S2
S→if(B)MS1
S→i=E
B→B1MB2
B→B1||MB2
B→!B1
B→E1 relop E2
E→E1+E2
E→E1*E2
E→-E1
E→(E1)
E→i
M→¢ ;代表的是空
N→¢ ;代表的是空
2.2 if-else语句的LR属性文法:
由以上扩展的文法可得到如下的属性文法:
P→SM
{if(S.nextlist!=¢) then backpatch(S.nextlist, M.pos);
}
S→if(B)M1S1NelseM2S2
{backpatch(B.truelist,M1.pos);
backpatch(B.falselist,M2.pos);
S.nextlist=merge(S1.nextlist,S2.nextlist);
S.nextlist=merge(S.nextlist,N.nextlist);
}
S→if(B)MS1
{backpatch(B.truelist,M.pos);
S.nextlist=merge(B.falselist,S1.nextlist);
}
S→i=E
{p=lookup(i.name);
if(p!=Null then genquad(=,E.place,,p.place);
}
B→B1MB2
{ backpatch(B1.truelist, M1.pos);
B.truelist=B2 .truelist;
B.falselist=merge(B1.falselist, B2.falselist);
}
B→B1||MB2
{backpatch(B1.falselist, M1.pos);
B.truelist=B2 .truelist;
B.falselist=merge(B1.truelist,B2.truelist);
B.falselist=B2.falselist;
}
B→!B1
{B.truelist=B1.falselist;
B.falselist= B2.falselist;
}
B→E1 relop E2
{ B.truelist=makelist(nexpos+1);
B.false=makelist(nextpos+2);
genquad(relop, E1.place, E2.place,_);
genquad(J,,,_);
}
E→E1+E2
{ e=newtemp;
e.place=E1.place+E2.place;
genquad
您可能关注的文档
最近下载
- 加气混凝土砌块墙面抹灰技术交底大全.docx VIP
- 六年级上册数学第四单元《解决问题的策略—假设》教学课件(苏教版).pptx VIP
- 【春秋航空 空客A320】ATA 32 起落架-2.pdf VIP
- 《环境工程原理》课后习题答案.pdf VIP
- 路清扫保洁项目策划投标文件.doc VIP
- 补肾化痰通经汤:开启肾虚痰瘀型青春期闭经治疗新路径.docx
- 《高等教育学概论》.docx VIP
- ISO IEC 20000-10-2018 信息技术- 服务管理- 第10部分: 概念和词汇(中文版).pdf
- 人民警察内务条令试题及答案.pdf VIP
- 中国重症肌无力诊断和治疗指南2025.docx VIP
原创力文档


文档评论(0)