Program Analysis via Multiple Context Free Language Reachability
Giovanna Kobus Conrado, Adam Husted Kjelstr{\o}m, Andreas, Pavlogiannis, Jaco van de Pol

TL;DR
This paper introduces Multiple Context-Free Language (MCFL) reachability as a new, expressive, and computationally feasible model for static program analysis, capable of approximating complex language reachability problems.
Contribution
The authors develop MCFL reachability, analyze its computational complexity, and demonstrate its practical utility in static analysis, especially for interleaved Dyck reachability problems.
Findings
MCFL reachability can be computed efficiently within established complexity bounds.
The algorithm is proven to be near-optimal based on complexity hypotheses.
Empirical evaluation shows high coverage in Android taint analysis benchmarks.
Abstract
Context-free language (CFL) reachability is a standard approach in static analyses, where the analysis question is phrased as a language reachability problem on a graph wrt a CFL L. While CFLs lack the expressiveness needed for high precision, common formalisms for context-sensitive languages are such that the corresponding reachability problem is undecidable. Are there useful context-sensitive language-reachability models for static analysis? In this paper, we introduce Multiple Context-Free Language (MCFL) reachability as an expressive yet tractable model for static program analysis. MCFLs form an infinite hierarchy of mildly context sensitive languages parameterized by a dimension and a rank . We show the utility of MCFL reachability by developing a family of MCFLs that approximate interleaved Dyck reachability, a common but undecidable static analysis problem. We show…
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.
Taxonomy
TopicsMachine Learning and Algorithms · Software Testing and Debugging Techniques · Intelligent Tutoring Systems and Adaptive Learning
