CPA beats ∞-CFA

  • Authors:
  • Frédéric Besson

  • Affiliations:
  • Inria, Centre Rennes - Bretagne Atlantique, Rennes cedex

  • Venue:
  • Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Context-sensitive points-to analysis is the current most scalable technology for constructing a precise control-flow graph for large object-oriented programs. One appealing feature of this framework is that it is parametric thus allowing to trade time for precision. Typical instances of this framework are κ-CFAs and Agesen's Cartesian Product Algorithm (CPA). It is common sense that κ-CFAs (for increasing κs) form a hierarchy. Yet, what is the relative precision of κ-CFA and CPA? Grove and Chambers [2] conjecture that CPA is more precise than ∞-CFA. For a core object-oriented language, we formally compare the precision of ∞-CFA and CPA. We prove that CPA is indeed strictly more precise than ∞-CFA. On a theoretical level, this result confirms the findings of empiric studies concluding the superiority of object-sensitivity with respect to call-string sensitivity.