Dependence Analysis of Recursive Subprograms and Its Applications

Xu Dong Bao · Chinese Journal of Computers · 2001

Dependence analysis is an important approach to analyze, understand and maintain programs, which has been widely used in software engineering and reengineering. Of all the dependence analysis methods, an approach to analyze dependencies of recursive subprograms is one of the main difficulties. Therefore, the paper proposes a new approach to analyze dependencies among recursive subprograms. In this paper, firstly, we discuss methods to analyze the data dependence and control dependence of a single subprogram in detail. Then, 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 in this paper. Our method can obtain more precise dependencies among recursive subprograms than any other methods we know.

Read the paper · More papers on PaperTik