编译原理 第一篇概论.pptVIP

  • 6
  • 0
  • 约4.69千字
  • 约 42页
  • 2018-06-21 发布于湖北
  • 举报
* * * * * * * * * * * * * * * * * * * 中间表示(Intermediate Representation) 是语法分析以后到目标代码生成之间的源程序的表现形式,是语义分析的结果 1)编译器分为前端和后端两部分,提高编译器开发效率 2)可以设计针对中间代码的代码优化器 语法树和中间代码都是中间表示 5 代码生成器 代码生成器的任务 代码生成器得到中间代码,并生成目标机器的代码 经常使用汇编语言作为目标代码 与目标机的特性相关:寄存器的数量,地址模式,数据表示等等 例如 a[index]=6用汇编语言表示的目标代码为: a:a的地址 *R :间接寻址 MOV R0,index MUL R0,2 MOV R1,a ADD R1,R0 MOV *R1,6 6 目标代码优化 任务: 改进由代码生成器生成的目标代码,节省执行时间和节约存储空间 优化包括: 选择编址模式提高性能 将速度慢的指令更换为速度快的 删除多余操作 例如: 目标代码是: MOV R0,index MUL R0,2 MOV R1,a ADD R1,R0 MOV *R1,6 优化后: MOV R0,index SHL R0 MOV a[R0],6 7 编译器的主要数据结构 常数表(Literal table) 用来存储程序中用到的常量和字符串 常数表的作用: 通

文档评论(0)

1亿VIP精品文档

相关文档