Self-adaptive static analysis

10/20/2017
by   Eric Bodden, et al.
0

Static code analysis is a powerful approach to detect quality deficiencies such as performance bottlenecks, safety violations or security vulnerabilities already during a software system's implementation. Yet, as current software systems continue to grow, current static-analysis systems more frequently face the problem of insufficient scalability. We argue that this is mainly due to the fact that current static analyses are implemented fully manually, often in general-purpose programming languages such as Java or C, or in declarative languages such as Datalog. This design choice predefines the way in which the static analysis evaluates, and limits the optimizations and extensions static-analysis designers can apply. To boost scalability to a new level, we propose to fuse static-analysis with just-in-time-optimization technology, introducing for the first time static analyses that are managed and inherently self-adaptive. Those analyses automatically adapt themselves to yield a performance/precision tradeoff that is optimal with respect to the analyzed software system and to the analysis itself. Self-adaptivity is enabled by the novel idea of designing a dedicated intermediate representation, not for the analyzed program but for the analysis itself. This representation allows for an automatic optimization and adaptation of the analysis code, both ahead-of-time (through static analysis of the static analysis) as well as just-in-time during the analysis' execution, similar to just-in-time compilers.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/15/2018

Debugging Static Analysis

To detect and fix bugs and security vulnerabilities, software companies ...
research
10/09/2020

Modular Collaborative Program Analysis in OPAL

Current approaches combining multiple static analyses deriving different...
research
02/14/2020

Reusing Static Analysis across Different Domain-Specific Languages using Reference Attribute Grammars

Context: Domain-specific languages (DSLs) enable domain experts to speci...
research
09/17/2018

FormuLog: Datalog for static analysis involving logical formulae

Datalog has become a popular language for writing static analyses. Becau...
research
05/28/2021

Accelerating JavaScript Static Analysis via Dynamic Shortcuts (Extended Version)

JavaScript has become one of the most widely used programming languages ...
research
06/09/2021

Visualizing The Intermediate Representation of Just-in-Time Compilers

Just-in-Time (JIT) compilers are used by many modern programming systems...
research
09/18/2023

Towards Model Co-evolution Across Self-Adaptation Steps for Combined Safety and Security Analysis

Self-adaptive systems offer several attack surfaces due to the communica...

Please sign up or login with your details

Forgot password? Click here to reset