Trace-based control-flow analysis

Benoît Montagu, Thomas Jensen
2021 Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation  
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
more » ... ysis that limits the cycles in call stacks, and can achieve better precision than -CFA at a similar cost.
doi:10.1145/3453483.3454057 fatcat:hpnb2jttn5anbpg6sd4bhwtxcq