Combining Formal and Informal Information in Bayesian Program Analysis via Soft Evidences
Tianchi Li, Xin Zhang
Abstract
We propose a neural-symbolic style of program analysis that systematically incorporates informal information in a Datalog program analysis. The analysis is converted into a probabilistic analysis by attaching probabilities to its rules. And its output becomes a ranking of possible alarms based on their probabilities. We apply a neural network to judge how likely an analysis fact holds based on informal information such as variable names and String constants. This information is encoded as a soft evidence in the probabilistic analysis, which is a "noisy sensor" of the fact. With this information, the probabilistic analysis produces a better ranking of the alarms. We have demonstrated the effectiveness of our approach by improving a pointer analysis based on variable names on eight Java benchmarks, and a taint analysis that considers inter-component communication on eight Android applications. On average, our approach has improved the inversion count between true alarms and false alarms, mean rank of true alarms, and median rank of true alarms by 55.4%, 44.9%, and 58% on the pointer analysis, and 67.2%, 44.7%, and 37.6% on the taint analysis respectively. We also demonstrated the generality of our soft evidence mechanism by improving a taint analysis and an interval analysis for C programs using dynamic information from program executions.
CCS Concepts: • Software and its engineering → Automated static analysis.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext d7b609c8-3d3b-4856-bfbf-cef0225a0d9bCited by top-tier papers3
- Fuzzing Guided by Bayesian Program AnalysisYifan Zhang, Xin ZhangPOPL 2026 · 2 citations
- Beer: Interactive Alarm Resolution in Bayesian Program Analysis via Exploration-ExploitationHaoran Lin, Zhenyu Yan, Xin ZhangOOPSLA 2026
- Abstract Interpretation with Confidence: Quantifying the Precision of Dataflow Analysis with ProbabilitiesYuanfeng Shi, Ziyue Jin, Xin ZhangPLDI 2026
Builds on8
- GraphCodeBERT: Pre-training Code Representations with Data FlowDaya Guo, Shuo Ren, Shuai Lu, Zhangyin Feng et al.ICLR 2021 · 1,644 citations
- Flow2Vec: value-flow-based precise code embeddingYulei Sui, Xiao Cheng, Guanqin Zhang, Haoyu WangOOPSLA 2020 · 94 citations
- Learning semantic program embeddings with graph interval neural networkYu Wang, Ke Wang, Fengjuan Gao, Linzhang WangOOPSLA 2020 · 61 citations
- Scallop: A Language for Neurosymbolic ProgrammingZiyang Li, Jiani Huang, Mayur NaikPLDI 2023 · 38 citations
- Boosting static analysis accuracy with instrumented test executionsTianyi Chen, Kihong Heo, Mukund RaghothamanFSE 2021 · 18 citations
Related papers
- Program Repair Guided by Datalog-Defined Static AnalysisYu Liu, Sergey Mechtaev, Pavle Subotic, Abhik RoychoudhuryFSE 2023 · 14 citations
- DAInfer: Inferring API Aliasing Specifications from Library Documentation via Neurosymbolic OptimizationChengpeng Wang, Jipeng Zhang, Rongxin Wu, Charles ZhangFSE 2024 · 5 citations
- Scaling Abstraction Refinement for Program Analyses in Datalog using Graph Neural NetworksZhenyu Yan, Xin Zhang, Peng DiOOPSLA 2024 · 1 citation
- NESA: Relational Neuro-Symbolic Static Program AnalysisChengpeng Wang, Yifei Gao, Wuqi Zhang, Xuwei Liu et al.FSE 2026 · 1 citation
- LLM-Based Alarm Resolution Guided by Bayesian Program AnalysisYifan Zhang, Yuanfeng Shi, Haoran Lin, Yingfei Xiong et al.OOPSLA 2026
