Learning a variable-clustering strategy for octagon from labeled data generated by a static analysis

作者: Kihong Heo , Hakjoo Oh , Hongseok Yang

DOI: 10.1007/978-3-662-53413-7_12

关键词:

摘要: We present a method for automatically learning an effective strategy clustering variables the Octagon analysis from given codebase. This learned works as preprocessor of Octagon. Given program to be analyzed, is first applied and clusters in it. then run partial variant that tracks relationships among within same cluster, but not across different clusters. The notable aspect our although based on supervised learning, it does require manually-labeled data. ask human indicate which pairs codebase should tracked. Instead uses impact pre-analysis previous work labels variable positive or negative. implemented top static buffer-overflow detector C programs tested against open source benchmarks. Our experiments show with scales up 100KLOC 33x faster than one (which itself significantly original analysis), while increasing false alarms by only 2 %.

参考文章(25)
Bertrand Jeannet, Antoine Miné, Apron: A Library of Numerical Abstract Domains for Static Analysis Computer Aided Verification. ,vol. 5643, pp. 661- 667 ,(2009) , 10.1007/978-3-642-02658-4_52
Arnaud Venet, Guillaume Brat, Precise and efficient static array bound checking for large embedded C programs Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation - PLDI '04. ,vol. 39, pp. 231- 242 ,(2004) , 10.1145/996841.996869
Hakjoo Oh, Hongseok Yang, Kwangkeun Yi, Learning a strategy for adapting a program analysis via bayesian optimisation conference on object oriented programming systems languages and applications. ,vol. 50, pp. 572- 588 ,(2015) , 10.1145/2814270.2814309
Hakjoo Oh, Kihong Heo, Wonchan Lee, Woosuk Lee, Daejun Park, Jeehoon Kang, Kwangkeun Yi, Global Sparse Analysis Framework ACM Transactions on Programming Languages and Systems. ,vol. 36, pp. 8- ,(2014) , 10.1145/2590811
Aditya V. Nori, Rahul Sharma, Termination proofs from tests foundations of software engineering. pp. 246- 256 ,(2013) , 10.1145/2491411.2491413
Ravi Mangal, Xin Zhang, Aditya V. Nori, Mayur Naik, A user-guided approach to program analysis foundations of software engineering. pp. 462- 473 ,(2015) , 10.1145/2786805.2786851
Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort, Vincent Michel, Bertrand Thirion, Olivier Grisel, Mathieu Blondel, Andreas Müller, Joel Nothman, Gilles Louppe, Peter Prettenhofer, Ron Weiss, Vincent Dubourg, Jake Vanderplas, Alexandre Passos, David Cournapeau, Matthieu Brucher, Matthieu Perrot, Édouard Duchesnay, Scikit-learn: Machine Learning in Python Journal of Machine Learning Research. ,vol. 12, pp. 2825- 2830 ,(2011)
Sriram Sankaranarayanan, Franjo Ivanči, Aarti Gupta, Mining library specifications using inductive logic programming international conference on software engineering. pp. 131- 140 ,(2008) , 10.1145/1368088.1368107
Rahul Sharma, Saurabh Gupta, Bharath Hariharan, Alex Aiken, Percy Liang, Aditya V. Nori, A data driven approach for algebraic loop invariants european symposium on programming. pp. 574- 592 ,(2013) , 10.1007/978-3-642-37036-6_31
Hakjoo Oh, Kihong Heo, Wonchan Lee, Woosuk Lee, Kwangkeun Yi, Design and implementation of sparse global analyses for C-like languages programming language design and implementation. ,vol. 47, pp. 229- 238 ,(2012) , 10.1145/2254064.2254092