指针分析与副作用分析及概率数据流框架的研究
在软件开发中,程序分析是一项至关重要的工作,它能够帮助开发者更好地理解程序的行为,进行代码优化等操作。本文将介绍指针分析与副作用分析,以及一种新颖的概率数据流框架。
指针分析与副作用分析
在模块化开发过程中,传统的全程序分析方法往往无法适用,这给程序分析的设计者带来了巨大挑战。而通过Andersen的指针分析和相应的修改分析,可以用于处理使用预编译库构建的程序。
变量与指针摘要
首先,有相关的变量摘要信息。例如,过程集合为 Procedures = {exec, neg}
, exec
过程的局部变量为 Locals(exec) = {fp}
,代表集合为 Reps = {rep1}
,全局变量为 Globals = {g}
, neg
过程没有局部变量 Locals(neg) = ∅
。
指针摘要方面, exec
过程的指针关系为 proc exec(rep1,fp)
, (*fp)(g,rep1)
且 g=rep1
。
修改摘要中, SynMod(exec) = {(rep1, I), (g, D)}
, SynMod(neg) = ∅
, SynCall(exec) =