我们考虑的最后一个TIP语言特性是指针和动态内存分配(请参见第2.1节的语法)。为简单起见,我们忽略了record(除了第11.2节的最后部分)。
为了说明指针相关的问题,假设我们希望对类似于以下TIP代码进行符号分析或常量传播分析:
*x = 42; *y = -87; z = *x;
在这里,变量 z 的值取决于变量 x 和 y 是否是别名,即它们是否指向同一个单元。如果没有这样的别名信息,很快就会变得无法生成有用的数据流和控制流分析结果。
11.1 分配点抽象
11.2 Andersen算法
11.3 Steensgaard 算法
11.4 过程间指针分析
11.5 空指针分析
11.6 流敏感的指针分析
11.7 逃逸分析