A Holistic Static Analysis for Finding Errors in Source Code
Valery Nikolayevich Ignatyev · PROGRAMMNAYA INGENERIA · 2025
We propose a holistic comprehensive static analysis system that addresses modern challenges of code complexity growth and supporting many popular languages while being capable of utilizing source code metainformation during analysis (e.g., commit history, merge request discussions). The system includes classical methods, such as abstract syntax tree search, dataflow analysis, symbolic execution, and new methods based on machine learning and large language models for error detection and cross-verification. We discuss the system's design and its implementation in the SharpChecker, an industrial static analyzer, including an ensemble of relevant analysis methods. The system considers the main use cases for the analyzer, proposes a scheme for interaction and data exchange between its components. The paper presents brief results of performance, precision, and recall of the system on the set of open source projects with more than 5 million LOC, illustrating high performance.