精品课程《编译原理第12章代码生成》PPT课件.ppt
《精品课程《编译原理第12章代码生成》PPT课件.ppt》由会员分享,可在线阅读,更多相关《精品课程《编译原理第12章代码生成》PPT课件.ppt(44页珍藏版)》请在三一办公上搜索。
1、12.1 目标机,目标代码分为两类:一是机器语言代码 一是汇编语言代码一、有代表性的目标机二、具体指令系统,例子:假设有函数说明FUNCTION f(VAR X:real;J:integer):real;BEGIN X:=2.5+J IF X2.5 THEN X:=X+1 ELSE X:=X-1.0;f:=X*YEND,则生成的四元式为(当前层数l-1):1.(FUNC,f,Noff,Moff)2.(CONV,J,T1)3.(r+,2.5,T1,T2)2.5+J 4.(=:,T2,X)X:=2.5+J 5.(,X,2.5,T3)X2.5 4.(THEN,T3,)5.(CONV,1,T4)6.(
2、r+,X,T4,T5)X+1 7.(=:,T5,X)X:=X+1 8.(ELSE,),9.(r-,X,1.0,T6)X-1.0 10.(=:,T6,X)X:=X-1.0 11.(IFEND,)12.(r*,X,Y,T7)X*Y 13.(=:,T7,f)f:=X*Y 14.(FUNED,),引用型形参变量是间接变量,因此要用间接地址法.从上面中间代码生成出来的目标代码如下:,1.ST,2top 存返回地址,2.JMP,DISPLAY 形成DISPLAY表 3.-l,l(top)sp 4.ST top,sp(top)+Moftop 5.RINC top,Moff 6.CONV R1,J 7.ADD
3、 R1,2.5 8.ST R1,*X 9.LD R1,*x10.GT R1,2.511.FJMP R1,12.CONV R1,113.ADD R1,*x,14.ST R1,*x15.JMP,16.LD R1,*X17.SUB R1,1.018.ST R1,*x19.LD R1,*X20.MUL R1,y21.ST R1,3sp22.ST SP,top(sp)top23.LD SP,0top(0top)sp24.JMP,2top 返回,在本例中,标示符的抽象地址和目标地址如下:,其中k=6+l,指令2转向子程序DISPLAY。它把指令3作为信息做下面工作(造本层DISPLAY表)并返回到指令4:
4、,1.0 i 2.(addr(i,2top)(i+6)top 3.i+1i 4.若il则转2 5.(sp)(6+l)top,12.2 寄存器分配,定义访问一次内存的代价为,则指令执行代价=访问内存次数+1,例如:1.DL R0,M MUL R0,R0 总代价=4 ADD R0,R0 2.DL R0,M ADD R0,M 总代价=6 ST R0,M,3.DL R0,M MUL R0,R1 总代价=7 ST R0,M其中M表示直接存储地址。,使用寄存器的主要思想,在目标代码中使用寄存器的主要思想是:在四元式中,每当一个变量被定义时,首先产生把值送入某一寄存器的目标代码,然后在一个表里注明该变量的值
5、在哪一寄存器中,只有当寄存器被剥夺且变量的值以后还有用时,才把寄存器中的现行值记入内存单元。当一个变量的值以后不再被引用时,就不必保存到内存中。,寄存器的分配以基本块为单位。在基本块开始时所有寄存器都是空闲可用的,在结束基本块时剥夺所有寄存器,以便在下一个基本块开始时所有寄存器都是可用的。,寄存器分配的中心问题有二:一是寄存器的主动释放问题,一是寄存器的剥夺(被迫释放)问题。当没有可主动释放的,又没有空闲可用的寄存器时要采取剥夺手段。两个中心问题中的主要问题是寄存器的剥夺问题。决定剥夺哪个寄存器的主要因素有下列一些:1写入内存次数。2下次使用点的距离。3使用频率。,每当一个寄存器被剥夺时,要把
6、它的值写入一些内存单元中,我们希望这种写入动作最少。不同寄存器中的值在一个基本块内的使用频率是不相同的,我们希望被剥夺者(值)的使用频率是最低的。我们也希望被剥夺者的下次使用点是最远的。,12.3 表达式四元式的翻译,例 设有表达式 X*(a+b)*Y*(a+b)其中X和Y为间接量,a和b为直接量,且类型均为实型,则生成的四元式为:1(r+,a,b,T1)2(r*,X,T1,T2)3(r*,T2,Y,T3)4(r*,T3,T1,T4),由上述四元式生成目标代码的过程如图所示,12.4 复合变量四元式的翻译,复合变量有两种:VE,V.I。其中V有两 种可能:第一,它是结构变量名,第二,它又 是一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理第12章代码生成 精品课程 编译 原理 12 代码 生成 PPT 课件
链接地址:https://www.31ppt.com/p-6056350.html