Incrementalizing Lattice-Based Program Analyses in Datalog

Tamás Szabó

Date: Thu, November 01, 2018
Time: 12:00
Room: Dijkstrazaal HB09.150 (building 36)

Tamás Szabó will practise this talk:

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 ILPA incremental program analysis framework that supports relational analyses and lattice-based computations. ILPA 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 ILPA and present performance measurements that demonstrate incremental analysis updates within milliseconds.

Previous: Hendrik van Antwerpen |
Next: Jente Hidskes |