摘要
程序依赖性是一种重要的程序分析、理解与维护方法 ,广泛应用于软件工程及软件逆向工程的各个方面 ,但递归子程序间的依赖分析一直是依赖性分析中的难点 .为此 ,该文提出了一种新的递归子程序间的依赖性分析方法 ,它首先分析子程序内部的各种依赖关系 ;然后 ,结合子程序调用图分析子程序参数间的依赖关系 ;最后 ,通过模拟递归子程序的执行过程来分析它们之间的依赖关系 .利用该文提供的方法可得到比较精确的递归子程序间的依赖关系 .
The paper proposes a new approach to analyze dependencies among recursive subprograms. Firstly, we discuss methods to analyze the data dependence and control dependence of a single subprogram in detail. Then, by according to the subprogram call graphs, we compute dependence relationships among formal parameters of subprograms i.e. the parameter dependence sets. Then, using the information obtained in the precious steps and by simulating the executions of the recursive subprograms, we propose methods to analyze dependencies among the recursive calls in two cases: direct recursive and indirect recursive calls. The proof of the correctness of our method is presented at the same time. We also present one of the most important applications of dependence analysis - program slicing, using the method presented.
出处
《计算机学报》
EI
CSCD
北大核心
2001年第11期1178-1184,共7页
Chinese Journal of Computers
基金
国家自然科学基金 ( 60 0 730 12 )
江苏省自然科学基金
江苏省"三三三"人才基金
高等学校重点实验室访问学者基金
南京大学软件新技术国家重点实验室基金资助
关键词
程序分析
递归子程序
程序依赖性
软件工程
软件逆向工程
Computer aided analysis
Computer software maintenance
Recursive functions
Reverse engineering