Reachability-based Acyclicity Analysis by Abstract Interpretation
Samir Genaim, Damiano Zanardini

TL;DR
This paper introduces a formal static analysis method based on abstract interpretation to determine whether data structures are acyclic in programming languages like Java, aiding in termination and resource usage analysis.
Contribution
It formalizes a novel combined reachability and cyclicity analysis using abstract interpretation, providing a sound and optimal method for inferring acyclicity.
Findings
Analysis is sound and optimal within the abstract domain
Enables bounding loop iterations based on data structure depth
Improves termination and resource usage analysis in dynamic memory languages
Abstract
In programming languages with dynamic use of memory, such as Java, knowing that a reference variable x points to an acyclic data structure is valuable for the analysis of termination and resource usage (e.g., execution time or memory consumption). For instance, this information guarantees that the depth of the data structure to which x points is greater than the depth of the data structure pointed to by x.f for any field f of x. This, in turn, allows bounding the number of iterations of a loop which traverses the structure by its depth, which is essential in order to prove the termination or infer the resource usage of the loop. The present paper provides an Abstract-Interpretation-based formalization of a static analysis for inferring acyclicity, which works on the reduced product of two abstract domains: reachability, which models the property that the location pointed to by a…
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.
