IncAL - Incrementalizing Lattice-Based Program Analyses
Program analyses detect errors in code but have to trade off precision, recall, and performance. However, when code changes frequently as in an IDE, repeated re-analysis from-scratch is unnecessary and leads to poor performance. Incremental program analysis promises to deliver fast feedback after a code change by deriving a new analysis result from the previous one, and prior work has shown that order-of-magnitude performance improvements are possible. However, existing frameworks for incremental program analysis only support Datalog-style relational analysis, but not lattice-based analyses that derive and aggregate lattice values. To solve this problem, we present the IncAL incremental program analysis framework that supports relational analyses and lattice-based computations. IncAL is based on a novel algorithm that enables the incremental maintenance of recursive lattice-value aggregation, which occurs when analyzing code with cyclic control flow by fixpoint iteration. To demonstrate our approach, we realized strong-update points-to analysis and string analyses for Java in IncAL and present performance measurements that demonstrate incremental analysis updates within milliseconds.
presentation slides (DPA2018.IncA.pdf) | 1.55MiB |
Wed 18 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | |||
11:00 30mTalk | Program Analysis with Flix DPA Magnus Madsen Aalborg University | ||
11:30 30mTalk | IncAL - Incrementalizing Lattice-Based Program Analyses DPA Tamás Szabó itemis AG / TU Delft, Gábor Bergmann Budapest University of Technology and Economics / MTA-BME Lendület Research Group on Cyber-Physical Systems, Sebastian Erdweg TU Delft, Markus Voelter itemis File Attached | ||
12:00 30mTalk | Simple encoding of lattices in Datalog DPA Rei Thiessen Google Inc. File Attached |