Abstract
This technical report surveys recent work in the area of interprocedural data flow analysis. We summarize previous work in the area, present the programming language models used and categorize the "goodness" of the solutions of each method. In this paper we assume the reader is familiar with recursive, procedural languages (e.g., ALGOL) and classical data flow analysis algorithms and problems (e.g., finding def-to-use chains using interval analysis or the general iterative algorithm). First, we discuss the basic language model used by the majority of the methods. Second, we consider the data flow problems tackled and describe their characteristics; we also give short descriptions of the interval analysis and general iterative algorithms. Third, we present each method in terms of its major goal, language model restrictions, data flow problems addressed, alias handling and strengths and/or weaknesses. Fourth, we discuss open questions in the area.