在5.2节常量传播分析总,抽象状态的格是一个函数Vars→ flat(Z)。令D是Vars,L是flat(Z),那么转移方程就是f:(D→L)→(D→L),如9.3节所描述。常量传播分析并不满足分配率。复制常量传播分析是一种略不精确,但是满足分配律的分析,这种分析适用于9.6节的IDE框架。

复制常量传播分析与普通的常量传播用相同的格,但是在操作符的抽象描述上略微不精确:

Untitled

如下是普通的常量传播:

Untitled

对于任何组合形式的表达式,例如x*y+3,结果直接标记为T。也就是说,转移函数对于赋值语句,X=E,只考虑右侧即可:

  1. E是整数常量
  2. E是一个单个变量Y(赋值形式,单个Y,所以叫做copy assignment)
  3. 其他