You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算表达式临时变量数?编译器课程习题求解

表达式临时变量数计算:E1与E2的对比及方法解析

你的判断是对的——在课程介绍的简单代码生成技术下,E1和E2所需的临时变量数完全相同。下面详细解释计算方法及具体推导过程:

核心计算方法

这类基础代码生成策略的核心规则是:每执行一次二元加法运算,就用一个临时变量存储中间结果,直到最后将最终运算结果赋值给目标变量(如E1、E2)。

对于由n个操作数通过二元加法链式连接的表达式(无论左结合还是右结合),临时变量数NT的计算公式为:

NT = n - 2
  • 当n=2时,直接将运算结果赋值给目标变量,无需临时变量;
  • 当n>2时,每增加一个操作数,就多一次中间运算,对应新增一个临时变量。

E1与E2的具体计算

两个表达式均包含5个操作数(e1、e2、e3、e4、e5),代入公式得:

NT = 5 - 2 = 3

E1(左结合:e1+e2+e3+e4+e5)的三地址码生成

  • t1 = e1 + e2
  • t2 = t1 + e3
  • t3 = t2 + e4
  • E1 = t3 + e5
    使用的临时变量:t1、t2、t3(共3个)

E2(右结合:e1+(e2+(e3+(e4+e5))))的三地址码生成

  • t1 = e4 + e5
  • t2 = e3 + t1
  • t3 = e2 + t2
  • E2 = e1 + t3
    使用的临时变量:t1、t2、t3(共3个)

内容的提问来源于stack exchange,提问作者Juliana Hill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:55:42