REAL

Incrementalizing Lattice-Based Program Analyses in Datalog

Szabó, Tamás and Bergmann, Gábor and Erdweg, Sebastian and Voelter, Markus (2018) Incrementalizing Lattice-Based Program Analyses in Datalog. Proceedings of the ACM on Programming Languages, 2. pp. 1-29. ISSN 2475-1421

[img]
Preview
Text
3276509.pdf - Published Version
Available under License Creative Commons Attribution Non-commercial Share Alike.

Download (1MB) | Preview

Abstract

Program analyses detect errors in code, but when code changes frequently as in an IDE, repeated re-analysis from-scratch is unnecessary: It leads to poor performance unless we give up on precision and recall. Incremental program analysis promises to deliver fast feedback without giving up on precision or recall by deriving a new analysis result from the previous one. However, Datalog and other existing frameworks for incremental program analysis are limited in expressive power: They only support the powerset lattice as representation of analysis results, whereas many practically relevant analyses require custom lattices and aggregation over lattice values. To this end, we present a novel algorithm called DRedL that supports incremental maintenance of recursive lattice-value aggregation in Datalog. The key insight of DRedL is to dynamically recognize increasing replacements of old lattice values by new ones, which allows us to avoid the expensive deletion of the old value. We integrate DRedL into the analysis framework IncA and use IncA to realize incremental implementations of strong-update points-to analysis and string analysis for Java. As our performance evaluation demonstrates, both analyses react to code changes within milliseconds.

Item Type: Article
Subjects: Q Science / természettudomány > QA Mathematics / matematika > QA76 Computer software / programozás
Depositing User: Dr. Gábor Bergmann
Date Deposited: 21 Sep 2020 12:31
Last Modified: 21 Sep 2020 12:31
URI: http://real.mtak.hu/id/eprint/113768

Actions (login required)

Edit Item Edit Item