编译原理与技术讲义–第10章.pptVIP

  • 3
  • 0
  • 约1.4万字
  • 约 43页
  • 2017-05-19 发布于四川
  • 举报
编译原理与技术讲义–第10章

编译原理与技术 主要内容 代码生成器设计的基本问题 虚拟计算机模型 语法制导的目标代码生成 基本块和待用信息 一个简单代码生成器 代码生成技术小结 10.1 代码生成器设计的基本问题 代码生成在整个编译过程的位置 10.1 代码生成器设计的基本问题 目标程序 绝对机器代码,程序所有的内存地址,特别是程序的起始地址,在编译时都已经固定。这种代码的优点是装入机器后就可以立即执行,对于小程序可以快速编译和运行。 可重定位机器代码(可重定位目标模块),代码装入内存的起始地址可以任意改变。一组可重定位的若干目标模块,经过连接和装配后才可以运行。尽管这些工作增加了程序运行的代价,但是,可重定位机器代码的优点是灵活性。这种技术允许程序分模块编写,独立地编译成目标模块,并且从目标模块库中调用其它已经编译好的模块,便于程序开发。通常,可重定位机器代码中包含可重定位信息和连接信息。 如果目标代码是汇编语言程序,还需要汇编后才能运行。只要地址可以由偏移址及符号表中的其它信息计算得到,代码生成器就可以产生程序中名字的绝对地址或可重定位地址。这样生成代码的好处是不用生成二进制的机器代码,而是产生符号指令并用宏机制来帮助产生机器代码,使得代码生成过程变得容易。 为了可读性,本章采用汇编语言作为目标语言。 10.1 代码生成器设计的基本问题 指令选择 一个编译程序可以看成是一个转换系统,它把源程

文档评论(0)

1亿VIP精品文档

相关文档