Learning a strategy for adapting a program analysis via Bayesian optimisation

<br xmlns:etd="http://www.ouls.ox.ac.uk/ora/modsextensions">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 analy...

Celý popis

Podrobná bibliografie
Hlavní autoři: Oh, H, Yang, H, Yi, K
Médium: Conference item
Vydáno: Association for Computing Machinery 2015
_version_ 1826305387444305920
author Oh, H
Yang, H
Yi, K
author_facet Oh, H
Yang, H
Yi, K
author_sort Oh, H
collection OXFORD
description <br xmlns:etd="http://www.ouls.ox.ac.uk/ora/modsextensions">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.</br><br xmlns:etd="http://www.ouls.ox.ac.uk/ora/modsextensions">In this paper we present a new approach for building an adaptive static analyser. In our approach, the analyser includes a sophisticated parameterised 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 optimisation. The learnt strategy is then used for new, unseen programs. Using our approach, we developed partially flowand context-sensitive variants of a realistic C static analyser. The experimental results demonstrate that using Bayesian optimisation 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 the 75% of them, while increasing the analysis cost only by 3.3x of the baseline flow- and context-insensitive analysis, rather than 40x or more of the fully sensitive version.</br>
first_indexed 2024-03-07T06:32:07Z
format Conference item
id oxford-uuid:f656bcfd-ec1b-477c-9185-ff2c7490a207
institution University of Oxford
last_indexed 2024-03-07T06:32:07Z
publishDate 2015
publisher Association for Computing Machinery
record_format dspace
spelling oxford-uuid:f656bcfd-ec1b-477c-9185-ff2c7490a2072022-03-27T12:34:36ZLearning a strategy for adapting a program analysis via Bayesian optimisationConference itemhttp://purl.org/coar/resource_type/c_5794uuid:f656bcfd-ec1b-477c-9185-ff2c7490a207Symplectic Elements at OxfordAssociation for Computing Machinery2015Oh, HYang, HYi, K<br xmlns:etd="http://www.ouls.ox.ac.uk/ora/modsextensions">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.</br><br xmlns:etd="http://www.ouls.ox.ac.uk/ora/modsextensions">In this paper we present a new approach for building an adaptive static analyser. In our approach, the analyser includes a sophisticated parameterised 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 optimisation. The learnt strategy is then used for new, unseen programs. Using our approach, we developed partially flowand context-sensitive variants of a realistic C static analyser. The experimental results demonstrate that using Bayesian optimisation 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 the 75% of them, while increasing the analysis cost only by 3.3x of the baseline flow- and context-insensitive analysis, rather than 40x or more of the fully sensitive version.</br>
spellingShingle Oh, H
Yang, H
Yi, K
Learning a strategy for adapting a program analysis via Bayesian optimisation
title Learning a strategy for adapting a program analysis via Bayesian optimisation
title_full Learning a strategy for adapting a program analysis via Bayesian optimisation
title_fullStr Learning a strategy for adapting a program analysis via Bayesian optimisation
title_full_unstemmed Learning a strategy for adapting a program analysis via Bayesian optimisation
title_short Learning a strategy for adapting a program analysis via Bayesian optimisation
title_sort learning a strategy for adapting a program analysis via bayesian optimisation
work_keys_str_mv AT ohh learningastrategyforadaptingaprogramanalysisviabayesianoptimisation
AT yangh learningastrategyforadaptingaprogramanalysisviabayesianoptimisation
AT yik learningastrategyforadaptingaprogramanalysisviabayesianoptimisation