中间代码生成讲稿.ppt





《中间代码生成讲稿.ppt》由会员分享,可在线阅读,更多相关《中间代码生成讲稿.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中间代码生成1第一页,讲稿共三十页哦第八章:中间代码生成:概述v编译器的分析综合模型分析部分:源程序=基本块=中间表示综合部分:中间表示=目标程序图8-1:中间代码生成器的位置v使用中间表示(形式)的优点重置目标比较容易可在中间表示上应用与机器无关的代码优化器v如何实现?语法制导翻译2第二页,讲稿共三十页哦第八章:中间代码生成:概述v中间表示后缀表示(表达式)语法树/分析树和DAG:图8-2v图8-3:语法制导定义产生语法树/DAG语法树:mkunode和mknode每次返回新节点指针v图8-4:图8-2a中语法树的两种表示DAG: mkunode和mknode尽可能返回现存节点指针三地址码3
2、第三页,讲稿共三十页哦第八章:中间代码生成v概述v三地址码v声明语句v赋值语句v布尔表达式4第四页,讲稿共三十页哦第八章:中间代码生成:三地址码v三地址码的一般形式x := y op z三地址码是语法树或DAG的线性表示v图8-5:图8-2中的语法树和DAG相对应的三地址码5第五页,讲稿共三十页哦第八章:中间代码生成:三地址码v三地址语句的类型(通用)x := y op zx := op yx := yx := yi及xi :=yx := &y, x := *y及*x := ygoto Lif x relop y goto Lp(x1,x2xn)vparam x1 param x2 param
3、 xn call p,nvreturn y6第六页,讲稿共三十页哦第八章:中间代码生成:三地址码v语法制导翻译生成三地址码临时名字成了语法树的内节点图8-6:S属性定义生成赋值语句的三地址码图8-7:为while语句生成代码的语义规则7第七页,讲稿共三十页哦第八章:中间代码生成:三地址码v三地址语句的实现抽象形式:三地址语句具体实现:通过带有操作符合操作数的记录结构来实现v四元式v三元式v间接三元式8第八页,讲稿共三十页哦第八章:中间代码生成:三地址码v三地址语句的实现四元式v带有四个域的记录结构:op,arg1,arg2,resultarg1,arg2,result域的内容正常情况下指向这些
4、域所代表的名字在符号表表项的指针临时名字在生成时一定要被写入符号表v图8-8a:三地址语句的四元式表示9第九页,讲稿共三十页哦第八章:中间代码生成:三地址码v三地址语句的实现三元式v为了避免临时名字在生成时被写入符号表中,可以通过计算临时值的语句的位置来引用它v带有四个域的记录结构:op,arg1,arg2arg1,arg2指向符号表(对于程序员定义的名字或常量)的指针或者三元组结构(对于临时变量)的指针v图8-8b:三地址语句的三元式表示v图8-9:更多三元式表示10第十页,讲稿共三十页哦第八章:中间代码生成:三地址码v三地址语句的实现间接三元式v列出指向三元式的指针,而不是列出三元式本身v
5、图8-10:三地址语句的间接三元式表示11第十一页,讲稿共三十页哦第八章:中间代码生成:三地址码v三地址语句的实现表示方法比较:间址的使用v使用四元式表示,定义或使用临时变量的三地址语句可以通过符号表直接访问临时变量的地址v使用四元式表示,符号表在值的计算及使用之间提供了一次额外间址,有利于优化。使用三元式表示,移动一条定义临时值的语句需要我们改变在arg1及arg2数组中所有对该语句的引用,难以优化。使用间接三元式表示,可以通过statement列表的重新排序来移动语句。12第十二页,讲稿共三十页哦第八章:中间代码生成v概述v三地址码v声明语句v赋值语句v布尔表达式13第十三页,讲稿共三十页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中间 代码 生成 讲稿

限制150内