Trace-Based Control-Flow Analysis
Résumé
We define a small-step semantics for the untyped λ-calculus, that traces the β-reductions that occur during evaluation. By abstracting the computation traces, we reconstruct-CFA using abstract interpretation, and justify constraint-based-CFA in a semantic way. The abstract interpretation of the trace semantics also paves the way for introducing widening operators in CFA that go beyond existing analyses, that are all based on exploring a finite state space. We define ∇CFA, a widening-based analysis that limits the cycles in call stacks, and can achieve better precision than-CFA at a similar cost.
Origine | Fichiers produits par l'(les) auteur(s) |
---|