Learning a strategy for choosing widening thresholds from a large codebase

Sooyoung Cha, Sehun Jeong, Hakjoo Oh

Research output: Chapter in Book/Report/Conference proceedingConference contribution

2 Citations (Scopus)

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.

Original languageEnglish
Title of host publicationProgramming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings
EditorsAtsushi Igarashi
PublisherSpringer Verlag
Pages25-41
Number of pages17
ISBN (Print)9783319479576
DOIs
Publication statusPublished - 2016 Jan 1
Event14th Asian Symposium on Programming Languages and Systems, APLAS 2016 - Hanoi, Viet Nam
Duration: 2016 Nov 212016 Nov 23

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume10017 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference14th Asian Symposium on Programming Languages and Systems, APLAS 2016
CountryViet Nam
CityHanoi
Period16/11/2116/11/23

Fingerprint

Static analysis
Syntactics
Learning algorithms
Costs
Cost Analysis
Static Analysis
Open Source
Numerical Analysis
Learning Algorithm
Baseline
Heuristics
Benchmark
Learning
Strategy
Optimization
Experimental Results
Syntax
Training

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)

Cite this

Cha, S., Jeong, S., & Oh, H. (2016). Learning a strategy for choosing widening thresholds from a large codebase. In A. Igarashi (Ed.), Programming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings (pp. 25-41). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 10017 LNCS). Springer Verlag. https://doi.org/10.1007/978-3-319-47958-3_2

Learning a strategy for choosing widening thresholds from a large codebase. / Cha, Sooyoung; Jeong, Sehun; Oh, Hakjoo.

Programming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings. ed. / Atsushi Igarashi. Springer Verlag, 2016. p. 25-41 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 10017 LNCS).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Cha, S, Jeong, S & Oh, H 2016, Learning a strategy for choosing widening thresholds from a large codebase. in A Igarashi (ed.), Programming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 10017 LNCS, Springer Verlag, pp. 25-41, 14th Asian Symposium on Programming Languages and Systems, APLAS 2016, Hanoi, Viet Nam, 16/11/21. https://doi.org/10.1007/978-3-319-47958-3_2
Cha S, Jeong S, Oh H. Learning a strategy for choosing widening thresholds from a large codebase. In Igarashi A, editor, Programming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings. Springer Verlag. 2016. p. 25-41. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)). https://doi.org/10.1007/978-3-319-47958-3_2
Cha, Sooyoung ; Jeong, Sehun ; Oh, Hakjoo. / Learning a strategy for choosing widening thresholds from a large codebase. Programming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings. editor / Atsushi Igarashi. Springer Verlag, 2016. pp. 25-41 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
@inproceedings{be66703af89c4281a64de047b208111a,
title = "Learning a strategy for choosing widening thresholds from a large codebase",
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.",
author = "Sooyoung Cha and Sehun Jeong and Hakjoo Oh",
year = "2016",
month = "1",
day = "1",
doi = "10.1007/978-3-319-47958-3_2",
language = "English",
isbn = "9783319479576",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "25--41",
editor = "Atsushi Igarashi",
booktitle = "Programming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings",

}

TY - GEN

T1 - Learning a strategy for choosing widening thresholds from a large codebase

AU - Cha, Sooyoung

AU - Jeong, Sehun

AU - Oh, Hakjoo

PY - 2016/1/1

Y1 - 2016/1/1

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

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

UR - http://www.scopus.com/inward/record.url?scp=84992460247&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84992460247&partnerID=8YFLogxK

U2 - 10.1007/978-3-319-47958-3_2

DO - 10.1007/978-3-319-47958-3_2

M3 - Conference contribution

AN - SCOPUS:84992460247

SN - 9783319479576

T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

SP - 25

EP - 41

BT - Programming Languages and Systems - 14th Asian Symposium, APLAS 2016, Proceedings

A2 - Igarashi, Atsushi

PB - Springer Verlag

ER -