陈火旺编译原理(第三版)课后习题答案详解.pdfVIP

  • 29
  • 0
  • 约1.53千字
  • 约 3页
  • 2026-03-03 发布于安徽
  • 举报

陈火旺编译原理(第三版)课后习题答案详解.pdf

陈火旺编译原理(第三版)课后习题答案详解

根据搜索结果,我找到了关于陈火旺《编译原理》(第三版)课后习题的

相关解析内容。以下是基于检索到的信息整理的习题答案详解:

第八章习题解析

8.2表达式计算次序问题

题目分析:

该题考察表达式(++i)+((++i)+(++i))在不同编译环境下的计算次序和代码

生成策略。

x86/Linux系统编译结果:

编译器版本:GCC2.91.66

生成的汇编代码使用INC指令

运行结果:9

特点:代码生成未准确体现C语言语义,(++i)的结果未保留在不受影

响的地方

SPARC/SunOS系统编译结果:

未使用INC指令

代码生成更符合语义要求

深入分析:

表达式树的最优代码生成算法基于寄存器需求分析:

右子树(++i)+(++i)最少需要2个寄存器

左子树(++i)最少需要1个寄存器

按最优算法先生成右子树代码

8.3表达式计算次序实例

程序代码:

main(){

longi=10;

printf(

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档