- 1、本文档共88页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第四章中间代码生成(二)
运行时刻环境
◼中间表示
◼类型与声明
◼表达式的翻译
◼控制流与回填
编译器前端的逻辑结构
◼静态类型检查和中间代码生成的过程都可
以用语法制导的翻译来描述和实现
◼对于抽象语法树这种中间表示的生成,第
五章已经介绍过
三地址代码(1)
◼每条指令右侧最多有一个运算符
一般情况可以写成x=yopz
◼允许的运算分量
名字:源程序中的名字作为三地址代码的地址
常量:源程序中出现或生成的常量
编译器生成的临时变量
三地址代码(2)
◼指令集合(1)
运算/赋值指令:x=yopzx=opy
复制指令:x=y
无条件转移指令:gotoL
条件转移指令:ifxgotoLifFalsex
gotoL
条件转移指令:ifxrelopygotoL
三地址代码(3)
◼指令集合(2)
过程调用/返回
◼paramx1//设置参数
◼paramx2
◼…
◼paramxn
◼callp,n//调用子过程p,n为参数个数
带下标的复制指令:x=y[i]x[i]=y
◼注意:i表示离开数组位置第i个字节,而不是数组的
第i个元素
地址/指针赋值指令:
◼x=yx=*y*x=y
三地址代码实例
◼语句
doi=i+1;while(a[i]v);
三地址指令的四元式表示方法
◼在实现时,可以使用四元式/三元式/间接三元式来
表示三地址指令
◼四元式:可以实现为纪录(或结构)
◼格式(字段):oparg1arg2result
op:运算符的内部编码
arg1,arg2,result是地址
x=y+z+yzx
◼单目运算符不使用arg2
◼param运算不使用arg2和result
◼条件转移/非条件转移将目标标号放在result字段
四元式的例子
◼赋值语句:a=b*-c+b*-c
三元式表示
◼三元式(triple)oparg1arg2
◼使用三元式的位置来引用三元式的运算结果
◼x[i]=y需要拆分为两个三元式
求x[i]的地址,然后再赋值
◼x=yopz需要拆分为(这里?是编号)
(?)opyz
=x?
◼问题:在优化时经常需要移动/删除/添加三
元式,导致三元式的移动
三元式的例子
间接三元式
◼包含了一个指向三元式的指针的列表
◼我们可以对这个列表进行操作,完成优化
功能;操作时不需要修改三元式中的参数
静态单赋值(SSA)
◼SSA中的所有赋值都是针对不同名的变量
◼对于同一个变量在不同路径中定值的情况,
可以使用φ函数来合并不同的定值
if(flag)x=-1;elsex=1;y=x*a
if(flag)x=-1;elsex=1;
您可能关注的文档
- Python程序设计基础-教案.docx
- Python程序设计基础-教学日历.doc
- Python程序设计基础课后习题答案.docx
- Python程序设计基础-教学课件 第1章 Python语言概述.pptx
- Python程序设计基础-教学课件 第2章 基础语法.pptx
- Python程序设计基础-教学课件 第3章 程序控制结构.pptx
- Python程序设计基础-教学课件 第4章 组合数据类型.pptx
- Python程序设计基础-教学课件 第5章 字符串.pptx
- Python程序设计基础-教学课件 第6章 函数.pptx
- Python程序设计基础-教学课件 第7章 文件和异常处理.pptx
- 【东兴证券-2025研报】东兴证券晨报.pdf
- 【东方证券-2025研报】学大教育(000526):传统高中教培稳健,职业教育打造第二增长曲线.pdf
- 【华创证券-2025研报】12月经济数据前瞻:政策效果初回顾:量升价落.pdf
- 【华西证券-2025研报】润本股份(603193):从投资角度看润本:七问七答.pdf
- 【华创证券-2025研报】华创医药投资观点、研究专题周周谈第109期全国中成药联盟集采开标.pdf
- 【南华期货-2025研报】南华商品指数日报.pdf
- 【国联证券-2025研报】地产行业2025年度投资策略:地产止跌企稳,估值修复可期.pdf
- 【冠通期货-2025研报】冠通每日交易策略.pdf
- 【华创证券-2025研报】化债区域观察系列之三:青甘宁化债效果及投资机会分析.pdf
- 【华西证券-2025研报】社服零售2025年度投资策略:景气拐点将现,破旧立新迎春来.pdf
文档评论(0)