Control-flow analysis of function calls and returns by abstract interpretation

  • Authors:
  • Jan Midtgaard;Thomas P. Jensen

  • Affiliations:
  • Department of Computer Science, Aarhus University, íbogade 34, DK-8200 Aarhus N, Denmark;INRIA, Campus de Beaulieu, F-35042 Rennes, France

  • Venue:
  • Information and Computation
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Abstract interpretation techniques are used to derive a control-flow analysis for a simple higher-order functional language. The analysis approximates the interprocedural control-flow of both function calls and returns in the presence of first-class functions and tail-call optimization. In addition to an abstract environment, the analysis computes for each expression an abstract call-stack, effectively approximating where function calls return. The analysis is systematically derived by abstract interpretation of the stack-based C"aEK abstract machine of Flanagan et al. using a series of Galois connections. We prove that the analysis is equivalent to an analysis obtained by first transforming the program into continuation-passing style and then performing control flow analysis of the transformed program. We then show how the analysis induces an equivalent constraint-based formulation, thereby providing a rational reconstruction of a constraint-based CFA from abstract interpretation principles.