Pushdown flow analysis with abstract garbage collection
J. Ian Johnson, Ilya Sergey, Christopher Earl, Matthew Might, David, Van Horn

TL;DR
This paper combines pushdown flow analysis with abstract garbage collection to improve the precision and efficiency of static analysis in higher-order functional programs, addressing theoretical and practical challenges.
Contribution
It introduces methods to integrate pushdown analysis with abstract garbage collection, achieving more precise and scalable control-flow analysis for higher-order languages.
Findings
Analysis times are reduced significantly.
Precision of analysis is boosted by orders of magnitude.
Synergistic interplay improves overall analysis quality.
Abstract
In the static analysis of functional programs, pushdown flow analysis and abstract garbage collection push the boundaries of what we can learn about programs statically. This work illuminates and poses solutions to theoretical and practical challenges that stand in the way of combining the power of these techniques. Pushdown flow analysis grants unbounded yet computable polyvariance to the analysis of return-flow in higher-order programs. Abstract garbage collection grants unbounded polyvariance to abstract addresses which become unreachable between invocations of the abstract contexts in which they were created. Pushdown analysis solves the problem of precisely analyzing recursion in higher-order languages; abstract garbage collection is essential in solving the "stickiness" problem. Alone, our benchmarks demonstrate that each method can reduce analysis times and boost precision by…
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.
