编译程序的组织 (13).ppt
《编译程序的组织 (13).ppt》由会员分享,可在线阅读,更多相关《编译程序的组织 (13).ppt(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、16.2 常见中间语言简介 作用:(过渡)经过语义分析被译成中间代码序列特点:形式简单、语义明确独立于目标语言优点:便于编译系统的实现、移植、代码优化常见表示形式:逆波兰表示三元式四元式其他表示法2波兰逻辑学家卢卡西维奇(Lukasiewicz)发明u形式化描述:若e1,e2为任意后缀表达式,为任意双目运算符,则作用于e1和e2的后缀式为e1e2。若为k目运算符,则作用于e1e2ek的后缀式为e1e2ek。u举例:a*(b+c)abc+*(a+b)*(c+d)ab+cd+*逆波兰表示法31 3+5*43+1=5*4=204四元式和三元式 四元式四元式是一种“三地址语句”的等价表示。一般形式为:
2、(op,arg1,arg2,resultresult)result:=arg1 op arg2 四元式四元式只能有一个运算符,所以,一个复杂的表达式只能由多个四元式四元式构成的序列表示。如表达式A+B*C可写为序列:T1:=B*C;T2:=A+T1当op为一元、零元运算(如无条件转移)时,arg2甚至arg1应缺省,即result:=op arg1或 op result;对应的一般形式为:(op,arg1,-,result)或(op,-,-,result)。2023/5/245 三元式三元式为节省临时变量的开销,有时采用一种三元式结构来作为中间代码,其一般形式为(i)(op,arg1,arg2
3、)(i)为三元式三元式的编号,也代表该式的运算结果;op,arg1,arg2的含义与四四元元式式类似,区别在于argarg既可为某三三元元式式的序号,表示用该三元式三元式的结果作为运算对象。例如,对于赋值语句a:=-b*(c+d),若用三元式三元式表示,则可写成(U_minus,b,-)(+,c,d )(*,)(:=,a )四元式和三元式(续)例:表达式 (A-12)*B+6 的中间代码2023/5/246三元式三元式1 (-,A,12)2 (*,(1),B)3 (+,(2),6)逆波兰表示逆波兰表示A12-B*6+-+*6A12B语法结构树语法结构树四元式四元式(-,A,12,T1)(*,T1,B,T2)(+,T2,6,T3)7其它表示法 树形表示树形表示(二叉树)P-P-代码(代码(接近PASCAL形式)C-C-代码(代码(接近C格式)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译程序的组织 13 编译程序 组织 13
限制150内