User-guided program reasoning using Bayesian inference
-
Published:2018-12-02
Issue:4
Volume:53
Page:722-735
-
ISSN:0362-1340
-
Container-title:ACM SIGPLAN Notices
-
language:en
-
Short-container-title:SIGPLAN Not.
Author:
Raghothaman Mukund1,
Kulkarni Sulekha1,
Heo Kihong1,
Naik Mayur1
Affiliation:
1. University of Pennsylvania, USA
Abstract
Program analyses necessarily make approximations that often lead them to report true alarms interspersed with many false alarms. We propose a new approach to leverage user feedback to guide program analyses towards true alarms and away from false alarms. Our approach associates each alarm with a confidence value by performing Bayesian inference on a probabilistic model derived from the analysis rules. In each iteration, the user inspects the alarm with the highest confidence and labels its ground truth, and the approach recomputes the confidences of the remaining alarms given this feedback. It thereby maximizes the return on the effort by the user in inspecting each alarm. We have implemented our approach in a tool named Bingo for program analyses expressed in Datalog. Experiments with real users and two sophisticated analyses---a static datarace analysis for Java programs and a static taint analysis for Android apps---show significant improvements on a range of metrics, including false alarm rates and number of bugs found.
Funder
National Science Foundation
Defense Advanced Research Projects Agency
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference60 articles.
1. Serge Abiteboul Richard Hull and Victor Vianu. 1994. Foundations of databases: The logical level (1st ed.). Pearson. Serge Abiteboul Richard Hull and Victor Vianu. 1994. Foundations of databases: The logical level (1st ed.). Pearson.
2. Datafun: a functional Datalog
3. The DaCapo benchmarks
4. Almost-correct specifications
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Titan : Efficient Multi-target Directed Greybox Fuzzing;2024 IEEE Symposium on Security and Privacy (SP);2024-05-19
2. Striking a balance;Proceedings of the 44th International Conference on Software Engineering;2022-05-21
3. Eagle;ACM Transactions on Software Engineering and Methodology;2021-10-31
4. Example-guided synthesis of relational queries;Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2021-06-18