Demanded Abstract Interpretation (Extended Version)

04/02/2021
by   Benno Stein, et al.
0

We consider the problem of making expressive static analyzers interactive. Formal static analysis is seeing increasingly widespread adoption as a tool for verification and bug-finding, but even with powerful cloud infrastructure it can take minutes or hours to get batch analysis results after a code change. While existing techniques offer some demand-driven or incremental aspects for certain classes of analysis, the fundamental challenge we tackle is doing both for arbitrary abstract interpreters. Our technique, demanded abstract interpretation, lifts program syntax and analysis state to a dynamically evolving graph structure, in which program edits, client-issued queries, and evaluation of abstract semantics are all treated uniformly. The key difficulty addressed by our approach is the application of general incremental computation techniques to the complex, cyclic dependency structure induced by abstract interpretation of loops with widening operators. We prove that desirable abstract interpretation meta-properties, including soundness and termination, are preserved in our approach, and that demanded analysis results are equal to those computed by a batch abstract interpretation. Experimental results suggest promise for a prototype demanded abstract interpretation framework: by combining incremental and demand-driven techniques, our framework consistently delivers analysis results at interactive speeds, answering 95

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/21/2022

Interactive Abstract Interpretation: Reanalyzing Whole Programs for Cheap

To put static program analysis at the fingertips of the software develop...
research
09/16/2023

A Categorical Framework for Program Semantics and Semantic Abstraction

Categorical semantics of type theories are often characterized as struct...
research
08/07/2020

An Experiment Combining Specialization with Abstract Interpretation

It was previously shown that control-flow refinement can be achieved by ...
research
04/27/2018

Sound up-to techniques and Complete abstract domains

Abstract interpretation is a method to automatically find invariants of ...
research
06/22/2022

Decoupling the ascending and descending phases in Abstract Interpretation

Abstract Interpretation approximates the semantics of a program by mimic...
research
08/15/2018

Multivariant Assertion-based Guidance in Abstract Interpretation

Approximations during program analysis are a necessary evil, as they ens...
research
09/12/2020

Memory-Efficient Fixpoint Computation

Practical adoption of static analysis often requires trading precision f...

Please sign up or login with your details

Forgot password? Click here to reset