# Learning a strategy for adapting a program analysis via bayesian optimisation

@article{Oh2015LearningAS, title={Learning a strategy for adapting a program analysis via bayesian optimisation}, author={Hakjoo Oh and Hongseok Yang and Kwangkeun Yi}, journal={Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications}, year={2015} }

Building a cost-effective static analyser 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 analyser. An ideal analyser 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 paper we present a…

## Figures, Tables, and Topics from this paper

## 49 Citations

Adaptive Static Analysis via Learning with Bayesian Optimization

- Computer ScienceACM Trans. Program. Lang. Syst.
- 2018

This article presents a new learning-based approach for adaptive static analysis that 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 and develops partially flow- and context-sensitive variants of a realistic C static analyzer.

A scalable learning algorithm for data-driven program analysis

- Computer ScienceInf. Softw. Technol.
- 2018

This work advances the state-of-the-art of data-driven program analysis by addressing the scalability issue of the existing learning algorithm and presenting a new algorithm that is able to efficiently learn a strategy from large codebases.

Learning a Strategy for Choosing Widening Thresholds from a Large Codebase

- Computer ScienceAPLAS
- 2016

A method is presented that automatically learns a good strategy for choosing widening thresholds from a given codebase and is able to achieve this performance 26 times faster than the previous Bayesian optimization approach.

Machine-Learning-Guided Adaptive Program Analysis

- 2016

In this talk, we present our experiences to use machine learning techniques for automatically adapting a program analysis to a given verification task. Building a cost-effective static analyzer for…

A practical algorithm for learning disjunctive abstraction heuristics in static program analysis

- Computer ScienceInf. Softw. Technol.
- 2021

An algorithm is presented that is able to learn heuristics when static analysis with the most precise abstraction is not scalable over the training programs, and it can search through the abstraction space from the coarse- to fine-grained abstractions.

A Machine-Learning Algorithm with Disjunctive Model for Data-Driven Program Analysis

- Computer ScienceACM Trans. Program. Lang. Syst.
- 2019

A new machine-learning algorithm with disjunctive model for data-driven program analysis as well as a learning algorithm to find the model parameters that is able to express nonlinear combinations of program properties.

Data-driven context-sensitivity for points-to analysis

- Computer ScienceProc. ACM Program. Lang.
- 2017

This work proposes an automated and data-driven approach that learns to effectively apply context-sensitivity from codebases and presents a greedy algorithm that efficiently learns the parameter of the heuristic rules.

Automatically generating features for learning program analysis heuristics for C-like languages

- Computer ScienceProc. ACM Program. Lang.
- 2017

The technique goes through selected program-query pairs in codebases, and it reduces and abstracts the program in each pair to a few lines of code, while ensuring that the analysis behaves similarly for the original and the new programs with respect to the query.

Learning analysis strategies for octagon and context sensitivity from labeled data generated by static analyses

- Computer ScienceFormal Methods Syst. Des.
- 2018

A method for automatically learning an effective strategy for clustering variables for the Octagon analysis from a given codebase that uses the impact pre-analysis for Octagon and automatically labels variable pairs in the codebase as positive or negative.

Beyond Deductive Methods in Program Analysis

- 2018

Building effective program analysis tools is a challenging endeavor: analysis designers must balance multiple competing objectives, including scalability, fraction of false alarms, and the…

## References

SHOWING 1-10 OF 44 REFERENCES

Probabilistic, modular and scalable inference of typestate specifications

- Computer SciencePLDI '11
- 2011

The results for the large benchmark show that ANEK can quickly infer specifications that are both accurate and qualitatively similar to those written by hand, and at 5% of the time taken to manually discover and hand-code the specifications.

Learning minimal abstractions

- Computer SciencePOPL '11
- 2011

This paper introduces two machine learning algorithms for efficiently finding a minimal abstraction and shows empirically that minimal abstractions are actually quite coarse: It suffices to provide context/object sensitivity to a very small fraction of the sites to yield equally precise results as providing context/ object sensitivity uniformly to all sites.

Sequential Model-Based Optimization for General Algorithm Configuration

- Mathematics, Computer ScienceLION
- 2011

This paper extends the explicit regression models paradigm for the first time to general algorithm configuration problems, allowing many categorical parameters and optimization for sets of instances, and yields state-of-the-art performance.

On abstraction refinement for program analyses in Datalog

- Computer SciencePLDI 2014
- 2014

This work presents a new approach for finding such abstractions for program analyses written in Datalog based on counterexample-guided abstraction refinement, which uses a boolean satisfiability formulation that is general, complete, and optimal.

Selective context-sensitivity guided by impact pre-analysis

- Computer SciencePLDI 2014
- 2014

This method applies context-sensitivity only when and where doing so is likely to improve the precision that matters for resolving given queries, and demonstrates generality by following the same principle and developing a selective relational analysis.

Dynamic inference of likely data preconditions over predicates by tree learning

- Computer ScienceISSTA '08
- 2008

This work presents a technique to infer likely data preconditions for procedures written in an imperative programming language that successfully learns a precondition that captures a safe and permissive calling environment.

Introspective analysis: context-sensitivity, across the board

- Computer SciencePLDI 2014
- 2014

This work proposes introspective analysis: a technique for uniformly scaling context-sensitive analysis by eliminating its performance-detrimental behavior, at a small precision expense, and shows that a simple but principled approach can be remarkably effective, achieving scalability for benchmarks previously completely out-of-reach for deep context- sensitive analyses.

Abstractions from tests

- Computer SciencePOPL '12
- 2012

The main insight is to directly and efficiently compute from a concrete trace, a necessary condition on the parameter configurations to prove a given query, and thereby prune the space of parameter configurations that the static analysis must consider.

Typestate-based semantic code search over partial programs

- Computer ScienceOOPSLA '12
- 2012

A novel code search approach for answering queries focused on API-usage with code showing how the API should be used, and the results indicate that the combination of a relatively precise analysis and consolidation allowed PRIME to answer challenging queries effectively.

Termination proofs from tests

- Computer ScienceESEC/FSE 2013
- 2013

An algorithm TpT for proving termination of a program based on information derived from testing it, which is able to prove termination on 15% more benchmarks than any previously known technique, and its evaluation on Windows device drivers demonstrates its ability to analyze and scale to real world applications.