收藏 分享(赏)

编译原理 第8章 常用中间语言.ppt

上传人:jinchen 文档编号:5779177 上传时间:2019-03-17 格式:PPT 页数:12 大小:215KB
下载 相关 举报
编译原理 第8章 常用中间语言.ppt_第1页
第1页 / 共12页
编译原理 第8章 常用中间语言.ppt_第2页
第2页 / 共12页
编译原理 第8章 常用中间语言.ppt_第3页
第3页 / 共12页
编译原理 第8章 常用中间语言.ppt_第4页
第4页 / 共12页
编译原理 第8章 常用中间语言.ppt_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、编译原理,华东交通大学信息学院 李广丽 ,生成中间代码的目的 (1)便于优化 (2)便于移植,常见的中间代码形式: 后缀式 三地址代码(四元式、三元式和间接三元式 )树形,中间代码:一种介于源语言和目标语言之间的中间语言形式,第八章 常用中间语言,中缀表示 后缀表示a+b ab+a+b*c abc*+(a+b)*c ab+c* a:=b*c+b*d abc*bd*+:=,特点,1、运算对象出现的顺序和原有顺序(从左到右)相同 2、运算符按实际计算顺序(从左到右)出现 3、运算符紧跟在运算对象的后面出现,且没有括号,优点:简明、便于计算值,8.1 逆波兰式(后缀式),分别给出下列表达式的后缀表示

2、,1. -a+b*(-c+d) 2. X:=-(a+b)/(c-d)-(a+b*c) 3. a=c b=d,条件语句的逆波兰式表示,if then else 其逆波兰式表示如下:FJ RJ 例:条件语句if ab then max:=a else max:=b 逆波兰式表示为:ab11FJmaxa:=14RJmaxb:=,8.2 四元式,操作符 操作数1 操作数2 结果,结果:通常是由编译引进的临时变量,例: d=a+b*c,*, b, c, T1 +, a, T1, T2 =, T2 , / , d,T1,T2, 为临时变量,由四元式优化比较方便,条件语句的四元式,对于条件语句if ab t

3、hen max:=a else max:=b 其四元式表示为: (,a,b,T1) (FJ,5,T1,/) (:=,a,/,max) (RJ,6,/,/) (:=,b,/,max) ( ),表达式的三元式:,第三个三元 式中的操作数(1) (2)表示第(1)和第 (2)条三元式的计 算结果。,8.3 三元式,练习:写出赋值语句x:=a+b*(c-d)的三元式,条件语句的三元式,对于条件语句 if ab then max:=a else max:=b 其三元式是: (,a,b) (FJ,5,() ) (:=,a,max) (RJ,6,/) (:=,b,/,max) ( ),使用三元式不便于代码优

4、化,因为优化要删除 一些三元式,或对某些三元式的位置要进行变更,由 于三元式的结果(表示为编号),可以是某个三元式的 操作数,随着三元式位置的变更也将作相应的修改, 很费事。,间接三元式:,为了便于在三元式上作优化处理,可使用间接三元式,三元式的执行次序用另一张表表示,这样在优化时, 三元式可以不变,而仅仅改变其执行顺序表。,间接三元式,例: A=B+C*D/EF=C*D,三元式,(1) *, C, D (2) / , (1), E (3) +, B, (2) (4) =, A, (3) (5) *, C, D (6) =, F, (1),不便于代码优化:删除某些三元式后可能需作一系列的修改,例:x =y +yz + yz,抽象语法树,有向无环图,8. 树表示,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报