Programs written in modern languages perform intricate manipulations of containers such as arrays, lists, dictionaries, and sets. We present an abstract interpretation-based framework for automatically inferring relations between the set of values stored in these containers. Relations include inclusion relations over unions and intersections, as well as quantified relationships with scalar variables. We develop an abstract domain constructor that builds a container domain out of a Quantified Union-Intersection Constraint (QUIC) graph parameterized by an arbitrary base domain. We instantiate our domain with a polyhedral base domain and evaluate it on programs extracted from the Python test suite. Over traditional, non-relational domains, we find significant precision improvements with minimal performance cost. © 2013 Springer-Verlag Berlin Heidelberg.
CITATION STYLE
Cox, A., Chang, B. Y. E., & Sankaranarayanan, S. (2013). QUIC Graphs: Relational invariant generation for containers. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7920 LNCS, pp. 401–425). Springer Verlag. https://doi.org/10.1007/978-3-642-39038-8_17
Mendeley helps you to discover research relevant for your work.