An Approach to Incremental and Modular Context-sensitive Analysis

04/05/2018
by   Isabel Garcia-Contreras, et al.
0

Context-sensitive global analysis of large code bases can be expensive, which can be specially problematic in interactive uses of analyzers. However, in practice each development iteration implies small modifications which are often isolated within a few modules, and analysis cost can be reduced by reusing the results of previous analyses. This has been achieved to date on the one hand through modular analysis, which reduce memory consumption and on the other hand often localize the computation during reanalysis mainly to the modules affected by changes. In parallel, context-sensitive incremental fixpoints have been proposed that achieve cost reductions at finer levels of granularity, such as changes in program lines. However, these fine-grained techniques are not directly applicable to modular programs. This work describes, implements, and evaluates a context-sensitive fixpoint analysis algorithm for (Constraint) Logic Programs aimed at achieving both inter-modular (coarse-grain) and intra-modular(fine-grain) incrementality, solving the problems related to propagation of the fine-grain change information and effects across module boundaries, for additions and deletions in multiple modules. The implementation and evaluation of our algorithm shows encouraging results: the expected advantages of fine-grain incremental analysis carry over to the modular analysis context. Furthermore, the fine-grained propagation of analysis information of our algorithm improves performance with respect to traditional modular analysis even when analyzing from scratch.

READ FULL TEXT

page 8

page 10

page 21

research
04/05/2018

An Approach to Incremental and Modular Context-sensitive Analysis of Logic Programs

Context-sensitive global analysis of large code bases can be expensive, ...
research
07/27/2022

Modular Multiplication without Carry Propagation (Algorithm Description)

This paper describes a sufficiently simple modular multiplication algori...
research
09/02/2020

A framework for a modular multi-concept lexicographic closure semantics

We define a modular multi-concept extension of the lexicographic closure...
research
08/18/2023

Incrementalizing Production CodeQL Analyses

Instead of repeatedly re-analyzing from scratch, an incremental static a...
research
06/26/2018

Modular meta-learning

Many prediction problems, such as those that arise in the context of rob...
research
02/05/2023

AProVE: Modular Termination Analysis of Memory-Manipulating C Programs

Termination analysis of C programs is a challenging task. On the one han...
research
07/21/2021

Automated Refactoring of Legacy JavaScript Code to ES6 Modules

The JavaScript language did not specify, until ECMAScript 6 (ES6), nativ...

Please sign up or login with your details

Forgot password? Click here to reset