Learning a strategy for choosing widening thresholds from a large codebase

13Citations
Citations of this article
5Readers
Mendeley users who have this article in their library.
Get full text

Abstract

In numerical static analysis, the technique of widening thresholds is essential for improving the analysis precision, but blind uses of the technique often significantly slow down the analysis. Ideally, an analysis should apply the technique only when it benefits, by carefully choosing thresholds that contribute to the final precision. However, finding the proper widening thresholds is nontrivial and existing syntactic heuristics often produce suboptimal results. In this paper, we present a method that automatically learns a good strategy for choosing widening thresholds from a given codebase. A notable feature of our method is that a good strategy can be learned with analyzing each program in the codebase only once, which allows to use a large codebase as training data. We evaluated our technique with a static analyzer for full C and 100 open-source benchmarks. The experimental results show that the learned widening strategy is highly cost-effective; it achieves 84% of the full precision while increasing the baseline analysis cost only by 1.4×. Our learning algorithm is able to achieve this performance 26 times faster than the previous Bayesian optimization approach.

Cite

CITATION STYLE

APA

Cha, S., Jeong, S., & Oh, H. (2016). Learning a strategy for choosing widening thresholds from a large codebase. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 10017 LNCS, pp. 25–41). Springer Verlag. https://doi.org/10.1007/978-3-319-47958-3_2

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free