- 3
- 0
- 约6.09千字
- 约 54页
- 2017-10-03 发布于浙江
- 举报
编译原理与C1-绪论
中间代码生成 例:id1+id2*id3 后缀表示(逆波兰Reverse Polish Notation) id1id2id3 * + 前缀表示(波兰Polish Notation) + id1*id2id3 四元组表示 (三地址码) 1 (*,id1,id2,T1) 2 (+,id3 ,T1 ,T2) 三元组表示 1 (* ,id2,id3) 2 (+,id1,(1)) E E + E id1 E * E id2 id3 语法树 中间代码生成 三地址码的另一种表示形式 T1=id2*id3 T2=id1*T1 其它类型的语句举例 printf(“hello”) x := s (赋值) param x (参数) call f (函数调用) 其中s 是hello的地址,f 是printf的地址 对中间代码的优化处理:对代码进行等价变换以求提高执行效率,即提高运行速度、节省存储空间 与机器无关的优化 与机器有关的优化 代码优化 与机器无关的优化 根据优化范围分类 局部优化 循环优化 全局优化 优化技术 常量合并:常数运算在编译期间完成,如8+9*4 公共子表达式的提取:基本块内 强度削减 代码外提 与机器有关的优化 寄存器的利用 将常用量放入寄存器,以减少访问内存的次数 体系结构 MIMD、SIMD、SPMD、向量机
原创力文档

文档评论(0)