Bayesian Program Analysis

被引:0
作者
Zhang X. [1 ,2 ]
Wang G.-C. [1 ,2 ]
Wu Y.-Q. [1 ,2 ]
Chen Y.-F. [1 ,2 ]
Li T.-C. [1 ,2 ]
Zhang Y.-F. [1 ,2 ]
Xiong Y.-F. [1 ,2 ]
机构
[1] Key Laboratory of High Confidence Software Technologies, Peking University, Ministry of Education, Beijing
[2] School of Computer Science, Peking University, Beijing
来源
Tien Tzu Hsueh Pao/Acta Electronica Sinica | 2024年 / 52卷 / 04期
基金
中国国家自然科学基金;
关键词
bayesian in⁃ ference; bayesian network; logic programming; probabilistic logic programming; program analysis;
D O I
10.12263/DZXB.20230973
中图分类号
学科分类号
摘要
Program analysis plays a critical role in software development and maintenance. However, traditional log⁃ ic-based program analysis methods exhibit significant limitations when dealing with modern, complex, large-scale, and dy⁃ namically rich software systems. The root cause of these limitations lies in the uncertainty present in software systems. To address this issue, researchers have proposed a series of new techniques for specific program analysis problems. These tech⁃ niques combine probability information with traditional logic analysis to capture the uncertainty inherent in software sys⁃ tems. By summarizing and abstracting existing work in this area, this paper introduces the Bayesian program analysis framework. The core idea of this framework is to integrate program analysis with Bayesian statistical inference. It does so by modeling and updating probability distributions about the program to infer information about program behavior. Bayes⁃ ian program analysis employs probabilistic logic programming to simultaneously handle both probability and logic informa⁃ tion, providing a unified approach that encompasses various existing works. It can also be generalized to non-traditional static program analysis tasks, such as program fault localization and delta debugging. This paper provides a definition of the Bayesian program analysis framework, demonstrates its applications in program analysis and related fields, and outlines future directions for development. © 2024 Chinese Institute of Electronics. All rights reserved.
引用
收藏
页码:1155 / 1172
页数:17
相关论文
共 89 条
[1]  
JOHNSON-FREYD P A., Introduction to Static Analysis, (2019)
[2]  
ZHANG J, ZHANG C, XUAN J F, Et al., Recent progress in program analysis, Journal of Software, 30, 1, pp. 80-109, (2019)
[3]  
LU S M, ZUO Z Q, WANG L Z., Progress in paralleliza⁃ tion of static program analysis, Journal of Software, 31, 5, pp. 1243-1254, (2020)
[4]  
QI X F, XU B W, ZHOU X Y., An approach to analyzing dependence of concurrent programs based on program reachability graphs, Acta Electronica Sinica, 35, 2, pp. 287-291, (2007)
[5]  
YAO P S, SHI Q K, HUANG H Q, Et al., Program analysis via efficient symbolic abstraction, Proceedings of the ACM on Programming Languages, 5
[6]  
LATTNER C, ADVE V., LLVM: A compilation frame⁃ work for lifelong program analysis & transformation, International Symposium on Code Generation and Optimi⁃ zation, pp. 75-86, (2004)
[7]  
ZHANG D L, JIN D H, GONG Y Z, Et al., Optimizing stat⁃ ic analysis based on defect correlations, Journal of Soft⁃ ware, 25, 2, pp. 386-399, (2014)
[8]  
MA W W, CHEN L, ZHANG X Y, Et al., How do develop⁃ ers fix cross-project correlated bugs? A case study on the GitHub scientific python ecosystem, Proceedings of the 39th International Conference on Software Engineering, pp. 381-392, (2017)
[9]  
REPS T, HORWITZ S, SAGIV M., Precise interprocedural dataflow analysis via graph reachability, Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 49-61, (1995)
[10]  
COUSOT P, COUSOT R., Abstract interpretation: A uni⁃ fied lattice model for static analysis of programs by con⁃ struction or approximation of fixpoints, Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Prin⁃ ciples of Programming Languages, pp. 238-252, (1977)