Skip to main navigation Skip to search Skip to main content

Interprocedural analyses: a comparison

  • University of Trier
  • Saarland University

Research output: Contribution to journalArticlepeer-review

8 Scopus citations

Abstract

We present a framework for program analysis of languages with procedures which is general enough to allow for a comparison of various approaches to interprocedural analysis. Our framework is based on a small-step operational semantics and subsumes both frameworks for imperative and for logic languages. We consider reachability analysis, that is, the problem of approximating the sets of program states reaching program points. We use our framework in order to clarify the impact of several independent design decisions on the precision of the analysis. Thus, we compare intraprocedural forward accumulation with intraprocedural backward accumulation. Furthermore, we consider both relational and functional approaches. While for relational analysis the accumulation strategy makes no difference in precision, we prove for functional analysis that forward accumulation may lose precision against backward accumulation. Concerning the relative precision of relational analyses and corresponding functional analyses, we exhibit scenarios where functional analysis does not lose precision. Finally, we explain why even an enhancement of functional analysis through disjunctive completion of the underlying abstract domain may sometimes lose precision against relational analysis.

Original languageEnglish
Pages (from-to)123-156
Number of pages34
JournalJournal of Logic Programming
Volume43
Issue number2
DOIs
StatePublished - May 2000
Externally publishedYes

Fingerprint

Dive into the research topics of 'Interprocedural analyses: a comparison'. Together they form a unique fingerprint.

Cite this