- 2
- 0
- 约7.73千字
- 约 36页
- 2016-05-08 发布于河南
- 举报
编译原理之代码生成 华东交通大学软件学院 万仲保 代码生成 概述 目标代码的主要目标 目标代码的主要形式 生成目标代码衡量指标 计算机模型 简单的代码生成器 全局寄存器分配 代码生成概述 代码生成是把经过语法分析或优化后的中间代码作为输入,将其转换成特定机器的机器语言或汇编语言作为输出,这样的转换程序称为代码生成器。 代码生成的任务是在编译前端生成的中间代码的基础上,生成等价有效的目标代码,这也是一种程序变换,变换的结果是产生目标代码。 等价是任一种程序变换的基本要求,因此讨论将集中在目标代码和如何产生有效的目标代码上。 有效,是指目标代码占用的空间要省,运行的时间要短,这涉及充分利用寄存器和生成优化的代码序列的问题。 目标代码的主要目标 第一.使所生成的目标代码尽可能地短。 第二,能较充分地发挥目标计算机可用资源的效率,如尽可能地使用执行速度较快的指令;充分利用计算机的寄存器或变址器,以节省访问内存的时间,等等。 目标代码的主要形式 具有绝对地址的机器语言程序 可浮动的机器语言程序 汇编语言形式的程序 绝对地址的机器语言程序 优点:最为有效,因为它们在存储空间中有固定的位置,一旦产生出此种形式的目标程序之后,便可直接投入运行。 缺点:不能独立地完成源程序各程序块的编译,即使是供源程序调用的子程序也必须同时进行编译,因而灵活性较差。 通常是在程序较短,而调试工作量较大的情况下,采
原创力文档

文档评论(0)