- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结构说明的文法 type ? struct {f1}; type ?int type ?char type ?pointer f1 ?f1;f|f f ? type i| type i[n] 处理结构类型说明的基本语义动作 f ? type i {f.NAME:=i.NAME; f.LEN:= type.LEN; FILN(i.NAME, f.LEN)} f ? type i[n] {f.NAME:=i.NAME; f.LEN:= type.LEN*n.VAL; FILN(i.NAME, f.LEN)} f1 ?f {FILO(f.NAME,0); /*第一分量的相对数为0*/ f1.LEN:= f.LEN} f1 ?f1(1);f {FILO(f.NAME,f1 (1).LEN); f1.LEN:= f1(1).LEN, +f1.LEN} type ? struct ‘{’ f1 ‘}’ {type.LEN:=f1.LEN} type ?char {type.LEN:=1} type ?int {type.LEN:=4} type ?pointer {type.LEN:=4} 布尔表达式的翻译 布尔表达式的作用: 计算逻辑值; 用做改变控制沉语句中的条件表达式。 布尔表达式的组成: 是由布尔算符(and,or和not)(或表示为?,?和┓) 施于布尔变量或关系表达式而成。 布尔表达式的翻译方法 控制语句中布尔表达式的翻译 布尔表达式的翻译方法 方法一、步步计算各部分真假值,最后计算表达式的值; 方法二、采取优化措施,只计算部分表达式的值。 示例: 布尔表达式:a or b and not c的四元式翻译 t1:=not c t2:=b and t1 t3:=a or t2 控制语句中布尔表达式的翻译 控制语句的代码结构 E为a rop b翻译的生成代码 if a rop b goto E.ture goto E.false 示例: ab or cd and cf if ab or cd and cf then S1 else S2 控制语句的代码结构 E的代码 S1的代码 E的代码 S1的代码 E的代码 S1的代码 jump out S2的代码 jump begin if E then S1 if E then S1 else S2 while E do S1 (2) 文法及改造 文法:S → if B then S1 用S1的第一条三地址语句的地址回填B.T链。 改写文法: M → if B then S → M S1 B S1 ? B为假 B为真 ? 语义子程序 M → if B then { backpatch(B.T, ip); M.CHAIN := B.F } S → M S1 { S.CHAIN := merg(M.CHAIN , S1.CHAIN) } 例子:if ab then a:=a+b if ab if B B.T=100 100: if a b goto 0 B.F=101 101: goto 0 if B then M backpatch(100,102) M.CHAIN={101} M a:=a+b M A 102: t1=a+b 103: a =t1 M S1 S1.CHAIN={0} S S.CHAIN=merg(M.CHAIN,S1.CHAIN) ={101} 102 4. “if B then S1 else S2”的翻译 语句实例: if a then b:=1; else b:=2; if a then { if b then … } else b:=2; if a then { if b then … else … } else b:=2; if a then { if b …
您可能关注的文档
最近下载
- 用于加工玻璃的双边磨边机.pdf VIP
- HIV相关知识培训课件.ppt
- 装配式农村住房建筑构造(二)(叠合钢网内置保温现浇混凝土墙体).pdf VIP
- 装配式农村住房建筑构造(三)(螺栓连接装配式夹芯保温混凝土墙体).pdf VIP
- J23J283 装配式农村住房建筑构造 (四) 混凝土自保温模块墙体 DBJT02-236-2023.pdf VIP
- J23J280 装配式农村住房建筑构造 (一) 桁架连接装配式模块墙体 DBJT02-233-2023.pdf VIP
- 一种双边磨边机.pdf VIP
- 癫痫诊疗指南(2025).docx
- 装配式农村住房建筑构造(五)(低层现浇混凝土聚苯模块墙体).docx VIP
- GB/T 25097-2010_绝缘体带电清洗剂.pdf
文档评论(0)