Adaptive static analysis via learning with Bayesian optimization

H. E.O. Kihong, O. H. Hakjoo, Hongseok Yang, Y. I. Kwangkeun

    Research output: Contribution to journalArticlepeer-review

    3 Citations (Scopus)

    Abstract

    Building a cost-effective static analyzer for real-world programs is still regarded an art. One key contributor to this grim reputation is the difficulty in balancing the cost and the precision of an analyzer. An ideal analyzer should be adaptive to a given analysis task and avoid using techniques that unnecessarily improve precision and increase analysis cost. However, achieving this ideal is highly nontrivial, and it requires a large amount of engineering efforts. In this article, we present a new learning-based approach for adaptive static analysis. In our approach, the analysis includes a sophisticated parameterized strategy that decides, for each part of a given program, whether to apply a precision-improving technique to that part or not. We present a method for learning a good parameter for such a strategy from an existing codebase via Bayesian optimization. The learnt strategy is then used for new, unseen programs. Using our approach, we developed partially flow- and context-sensitive variants of a realistic C static analyzer. The experimental results demonstrate that using Bayesian optimization is crucial for learning from an existing codebase. Also, they show that among all program queries that require flow- or context-sensitivity, our partially flow- and context-sensitive analysis answers 75% of them, while increasing the analysis cost only by 3.3× of the baseline flow- and context-insensitive analysis, rather than 40× or more of the fully sensitive version.

    Original languageEnglish
    Article number14
    JournalACM Transactions on Programming Languages and Systems
    Volume40
    Issue number4
    DOIs
    Publication statusPublished - 2018 Nov

    Bibliographical note

    Publisher Copyright:
    © 2018 Association for Computing Machinery.

    Keywords

    • Bayesian optimization
    • Data-driven program analysis
    • Static program analysis

    ASJC Scopus subject areas

    • Software

    Fingerprint

    Dive into the research topics of 'Adaptive static analysis via learning with Bayesian optimization'. Together they form a unique fingerprint.

    Cite this