针对已有指针分析算法的程序中间表示不能充分表示程序的语法结构与语义,而导致不适合应用于程序标准化转换的问题,提出基于控制依赖树的流敏感和上下文敏感的过程间指针分析算法.将程序表示为控制依赖树,改进指向表示法用以表示指针别名,在此基础上定义数据流公式,对控制依赖树进行流敏感和上下文敏感的指针分析.实验结果表明,该算法的准确性高于Emami指针分析算法的准确性,并且应用于程序标准化时可显著提高代码多样化消除率.
Existing pointer analysis algorithms usuaUy adopt a tower-level intermediate representation which can not sufficiently represent the syntactical structure and the semantic of programs. This makes them difficult to apply to program standardization. To solve this problem, a flow-sensitive and context-sensitive pointer analysis algorithm based on control dependence tree is presented in this paper. The control dependence tree is used as the intermediate representation for the source program, and an improved point-to representation is proposed to represent alias information. Based on this, data flow equations are defined to compute the point-to information by traversing the control dependence tree. Test results show that its accuracy is higher than that of Emami' s ap- proach,and it can greatly improve the variation removal rate of the program standardization.