Fraunhofer-Gesellschaft

Publica

Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Self-adaptive static analysis

 
: Bodden, E.

:

Association for Computing Machinery -ACM-; Institute of Electrical and Electronics Engineers -IEEE-; IEEE Computer Society; IEEE Computer Society, Technical Council on Software Engineering:
ACM/IEEE 40th International Conference on Software Engineering: New ideas and emerging results, ICSE-NIER 2018. Proceedings : 30 May-1 June 2018, Gothenburg, Sweden
Piscataway, NJ: IEEE, 2018
ISBN: 978-1-5386-6362-2
ISBN: 978-1-4503-5662-6
pp.45-48
International Conference on Software Engineering (ICSE) <40, 2018, Gothenburg>
English
Conference Paper
Fraunhofer IEM ()

Abstract
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.

: http://publica.fraunhofer.de/documents/N-520355.html