- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
if-then-else74布尔表达式和控制流语句SwhileEdo-OSCARLab
中国科大 7.4 布尔表达式和控制流语句 布尔表达式有两个基本目的 计算逻辑值 c = (a b) a 1 在控制流语句中用作条件表达式 if (a b a 1) then … 1/25 7.4 布尔表达式和控制流语句 布尔表达式有两种计算方式: if ( 1 or i++ 3) then 布尔表达式的完全计算 E1 or E2 布尔表达式的“短路”计算 E1 or E2 定义成 if E1 then true else E2 E1 and E2 定义成 if E1 then E2 else false 7.4 布尔表达式和控制流语句 7.4.1 布尔表达式的翻译 E ? E or E | E and E | not E | ( E ) | id relop id | true | false a b的翻译 100: if a b goto 103 101: t := 0 102: goto 104 103: t := 1 104: , =, , =, , == 对于ab的翻译而言,由于三地址代码中不包括形如t=ab的格式,故此使用if x relop y goto L 来实现。 7.4 布尔表达式和控制流语句 E ? E1 or E2 {E.place := newtemp; emit (E.place, ‘:=’, E1.place, ‘or’ E2.place) } E ? id1 relop id2 {E.place := newtemp; emit (‘if’, id1.place, relop.op, id2.place, ‘goto’, nextstat+3 ); emit (E.place, ‘:=’, ‘0’ ); emit (‘goto’, nextstat + 2 ); emit (E.place, ‘:=’, ‘1’ ) } a b的翻译 100: if a b goto 103 101: t := 0 102: goto 104 103: t := 1 104: 7.4 布尔表达式和控制流语句 7.4.2 控制流语句的翻译 S ? if E then S1 | if E then S1 else S2 | while E do S1 | S1; S2 5/25 7.4 布尔表达式和控制流语句 E.code S1.code E.true: . . . 指向E.true 指向E.false (a) if--then E.code S1.code E.true: . . . 指向E.true 指向E.false E.false: goto S.next (S1.next) S2.code (b) if-then-else E.code S1.code E.true: . . . 指向E.true 指向E.false goto S.begin S.begin: (c) while-do S1.code S2.code S1.next: . . . (d) S1; S2 E s1 E s1 s2 E s1 S1.next: 7.4 布尔表达式和控制流语句 S ? if E then S1 {E.true := newlabel; E.false := S.next; S1.next := S.next; S.code := E.code || gen(E.true, ‘:’) || S1.code } E.code S1.code E.true: . . . 指向E.true 指向E.false (a) if-then 7.4 布尔表达式和控制流语句 S ? if E then S1 else S2 {E.true := newlabel; E.false := newlabel; S1.next := S.next; S2.next := S.next; S.code := E.code || gen(E.true, ‘:’) || S1.code || gen(‘goto’, S.next) || gen(E.false, ‘:’) || S2.code} E.code S1.code E.true: . . . 指向E.true 指向E.false E.false: goto S.next S2.code (b) if-then-else 7.4 布尔表达式和控制流语句 S ? while E do S1 {S.begin:= newlabel; E.true := newlabel;
您可能关注的文档
- 20071121_113320第04章电脑网路的种类.PPT
- 2009年第6期-安徽商贸职业技术学院.DOC
- 2009年特通部招聘计划-北京交通大学就业资讯网.DOC
- 201019第一届董事会第十七次会议决议公告-天润曲轴.DOC
- 2010911_94249附录二左忠毅公逸事.DOC
- 2012北京科技型中小企业技术创新资金拟立项-北京科委.DOC
- 2013HBSC年会暨医院策略管理国际研讨会邀请函.DOC
- 2013年第4期总第52期嘉兴互联网协会秘书处编网址http.DOC
- 2013年秋季新生入馆教育——致化学系研究生复旦-复旦大学图书馆.PPT
- 2014广东科学技术奖拟推荐项目公示通告-珠海科技和工业.DOC
最近下载
- 数码摄像机-松下-AJ-D965MC说明书.pdf VIP
- 2024年巡察整改专题民主生活会个人“聚焦四个方面”对照检查材料范文2篇.docx VIP
- 人工智能对文化产业的推动.pptx VIP
- 人教版(2024)七年级上册英语教学计划(含教学进度表).docx
- 软件的项目可行性的研究的报告编写.ppt VIP
- 一种用于处理高硫高砷金矿的提金剂及其制备方法.pdf VIP
- 中国甲状腺疾病诊治指南ppt.pptx VIP
- 《中国抗癌协会甲状腺癌整合诊治指南(2022精简版)》解读PPT课件.pptx VIP
- 一种澳洲坚果种质热敏感等级的精准诊断及其缓解新梢叶片热伤害的方法.pdf VIP
- 全球常见传染病防控概述.pptx VIP
文档评论(0)