CFA2: a Context-Free Approach to Control-Flow Analysis
Dimitrios Vardoulakis (Northeastern University), Olin Shivers, (Northeastern University)

TL;DR
CFA2 is a novel control-flow analysis that precisely matches call and return in higher-order functional programs, improving accuracy over previous approximations like 0CFA and 1CFA.
Contribution
It introduces CFA2, the first flow analysis with accurate call/return matching for higher-order functions and tail calls, formulated via abstract interpretation.
Findings
CFA2 provides more accurate data-flow information than 0CFA.
CFA2 handles call/return mismatch issues effectively.
Preliminary evaluation shows improved precision.
Abstract
In a functional language, the dominant control-flow mechanism is function call and return. Most higher-order flow analyses, including k-CFA, do not handle call and return well: they remember only a bounded number of pending calls because they approximate programs with control-flow graphs. Call/return mismatch introduces precision-degrading spurious control-flow paths and increases the analysis time. We describe CFA2, the first flow analysis with precise call/return matching in the presence of higher-order functions and tail calls. We formulate CFA2 as an abstract interpretation of programs in continuation-passing style and describe a sound and complete summarization algorithm for our abstract semantics. A preliminary evaluation shows that CFA2 gives more accurate data-flow information than 0CFA and 1CFA.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
