程序设计语言与编译原理-第五章.ppt

* 仅300次加 转换后的等价代码为: 序号 OP ARG1 ARG2 结果 注 解 (1) = I M M=I (2) = J N N=J (3) = 1 K K=1 (4) j 100 K (9) 若100K转至第(9)个四元式 (5) + M 10 M M=M+10 (6) + N 10 N N=N+10 (7) + K 1 K K=K+1 (8) j (2) 转至第(4)个四元式 (9) * 5. 目标代码生成 任务:把中间代码(或优化后)变换成特定机器上的低级语言代码。 非常复杂:最后的翻译,有赖于硬件系统结构和机器指令含义,涉及到硬件功能部件的运用,机器指令的选择,各种类型变量的空间分配,以及寄存器和后援寄存器的调度等。如何产生出足以发挥硬件效率的目标代码是一件非常不容易的事情。 * 绝对指令代码 ? 可立即执行 可重定位指令代码 ? 借助连接装配程序把各目标模块连接在一起,确定程序变量 (或常数)在主存中的位置,装入内存中指定的起始地址,使之成为绝对指令代码 (大多数编译程序采用)。 汇编指令代码 ? 汇编器汇编之后运行 目标 代码 形式 * 某些情况下,为加速编译速度,某些阶段可省,某些阶段也可合并,但多数实用编译程序的工作过程大致都像这五个阶段。 * 2. 表格与表格管理 常见的表格:符号名表,常数表,标号表,入口名表,过程引用表。 格

文档评论(0)

1亿VIP精品文档

相关文档