TY - GEN
T1 - Learning a strategy for adapting a program analysis via Bayesian optimisation
AU - Oh, Hakjoo
AU - Yang, Hongseok
AU - Yi, Kwangkeun
N1 - Funding Information:
This work was supported by the Engineering Research Center of Excellence Program of Korea Ministry of Science, ICT & Future Planning(MSIP) / National Research Foundation of Korea(NRF) (Grant NRF- 2008-0062609), and by Samsung Electronics Software Center. This work was partly supported by Institute for Information & communications Technology Promotion(IITP) grant funded by the Korea government(MSIP) (No. B0101-15- 0557, Resilient Cyber-Physical Systems Research). Yang was supported by EPSRC.
Publisher Copyright:
© 2015 ACM.
PY - 2015/10/23
Y1 - 2015/10/23
N2 - 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 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.
AB - 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 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.
KW - Bayesian Optimization
KW - Program Analysis
UR - http://www.scopus.com/inward/record.url?scp=84958597240&partnerID=8YFLogxK
U2 - 10.1145/2814270.2814309
DO - 10.1145/2814270.2814309
M3 - Conference contribution
AN - SCOPUS:84958597240
T3 - Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA
SP - 572
EP - 588
BT - OOPSLA 2015 - Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming Systems, Languages, and Applications
A2 - Eugster, Patrick
A2 - Aldrich, Jonathan
PB - Association for Computing Machinery
T2 - 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2015
Y2 - 25 October 2015 through 30 October 2015
ER -