Litcius/Paper detail

Interleaving Static Analysis and LLM Prompting

Patrick J. Chapman, Cindy Rubio-González, Aditya Thakur

202415 citationsDOIOpen Access PDF

Abstract

This paper presents a new approach for using Large Language Models (LLMs) to improve static program analysis. Specifically, during program analysis, we interleave calls to the static analyzer and queries to the LLM: the prompt used to query the LLM is constructed using intermediate results from the static analysis, and the result from the LLM query is used for subsequent analysis of the program. We apply this novel approach to the problem of error-specification inference of functions in systems code written in C; i.e., inferring the set of values returned by each function upon error, which can aid in program understanding as well as in finding error-handling bugs. We evaluate our approach on real-world C programs, such as MbedTLS and zlib, by incorporating LLMs into EESI, a state-of-the-art static analysis for error-specification inference. Compared to EESI, our approach achieves higher recall across all benchmarks (from average of 52.55% to 77.83%) and higher F1-score (from average of 0.612 to 0.804) while maintaining precision (from average of 86.67% to 85.12%).

Topics & Concepts

Computer scienceStatic analysisInterleavingInferenceProgramming languageSet (abstract data type)Error analysisData miningArtificial intelligenceOperating systemMathematicsApplied mathematicsSoftware Engineering ResearchSoftware Testing and Debugging TechniquesSoftware System Performance and Reliability
Interleaving Static Analysis and LLM Prompting | Litcius