Interactive abstract interpretation: reanalyzing multithreaded C programs for cheap

Julian Erhard, Simmo Saan, Sarah Tilscher, Michael Schwarz, Karoliine Holter, Vesal Vojdani, Helmut Seidl

Research output: Contribution to journalArticlepeer-review

Abstract

To put sound program analysis at the fingertips of the software developer, we propose a framework for interactive abstract interpretation of multithreaded C code. Abstract interpretation provides sound analysis results, but can be quite costly in general. To achieve quick response times, we incrementalize the analysis infrastructure, including postprocessing, without necessitating any modifications to the analysis specifications themselves. We rely on the local generic fixpoint engine TD – which we enhance with reluctant destabilization to minimize reanalysis effort. Dedicated further improvements support precise incremental analysis of program properties that include concurrency deficiencies such as data-races. The framework has been implemented in the static analyzer Goblint, and combined with the MagpieBridge framework to relay findings to IDEs. We evaluate our implementation w.r.t. the yard sticks of response time and consistency. We also provide examples of program development highlighting the usability of our approach.

Keywords

  • Abstract interpretation
  • Incremental static analysis
  • Static analysis

Fingerprint

Dive into the research topics of 'Interactive abstract interpretation: reanalyzing multithreaded C programs for cheap'. Together they form a unique fingerprint.

Cite this