Demand Interprocedural Program Analysis Using Logic Databases

Thomas W. Reps. Demand Interprocedural Program Analysis Using Logic Databases. In Workshop on Programming with Logic Databases (Informal Proceedings), ILPS. pages 163-196, 1993.

Abstract

Interprocedural analysis concerns the static examination of a program that consists of multiple procedures. Its purpose is to determine certain kinds of summary information associated with the elements of a program (such as reaching definitions, available expressions, live variables, etc.). Most treatments of interprocedural analysis address the exhaustive version of the problem: summary information is to be reported for all elements of the program. This paper concerns the solution of demand versions of interprocedural analysis problems: summary information is to be reported only for a single program element of interest (or a small number of elements of interest). Because the summary information at one program point typically depends on summary information from other points, an important issue is to minimize the number of other points for which (transient) summary information is computed and/or the amount of information computed at those points.