The Interprocedural Coincidence Theorem

We present an interprocedural generalization of the well-known (intraprocedural) Coincidence Theorem of Kam and Ullman, which provides a sufficient condition for the equivalence of the meet over all paths (MOP) solution and the maximal fixed point (MFP) solution to a data flow analysis problem. This generalization covers arbitrary imperative programs with recursive procedures, global and local variables, and formal value parameters. In the absence of procedures, it reduces to the classical intraprocedural version. In particular, our stack-based approach generalizes the coincidence theorems of Barth and Sharir/Pnueli for the same setup, which do not properly deal with local variables of recursive procedures.

[1]  Barry K. Rosen Data Flow Analysis for Procedural Languages , 1979, JACM.

[2]  Frances E. Allen,et al.  Control-flow analysis , 2022 .

[3]  Bernhard Steffen,et al.  Finite Constants: Characterizations of a New Decidable Set of Constants , 1989, MFCS.

[4]  Eugene W. Myers,et al.  A precise inter-procedural data flow algorithm , 1981, POPL '81.

[5]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[6]  Etienne Morel,et al.  Data Flow Analysis and Global Optimization , 1984, Method and tools for compiler construction.

[7]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[8]  Patrick Cousot,et al.  Static Determination of Dynamic Properties of Recursive Procedures , 1977, Formal Description of Programming Concepts.

[9]  Gerhard Barth Interprocedural data flow systems , 1983 .

[10]  François Bourdoncle,et al.  Interprocedural Abstract Interpretation of Block Structured Languages with Nested Procedures, Aliasing and Recursivity , 1990, PLILP.

[11]  Neil D. Jones,et al.  A flexible approach to interprocedural data flow analysis and programs with recursive data structures , 1982, POPL '82.

[12]  Neil D. Jones,et al.  Program Flow Analysis: Theory and Application , 1981 .

[13]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[14]  B Lorho Methods and tools for compiler construction , 1984 .