Interleaving Static Analysis and LLM Prompting
This paper presents a new approach for using Large Language Models (LLMs) to improve static program analysis. Specifically, during program analysis, we \emph{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%).
Tue 25 JunDisplayed time zone: Windhoek change
10:40 - 12:20 | |||
10:40 50mKeynote | Challenges and Opportunities in Program Analysis for JavaScript SOAP Anders Møller Aarhus University | ||
11:30 20mTalk | Dr Wenowdis: Specializing dynamic language C extensions using type information SOAP Pre-print File Attached | ||
11:50 20mTalk | Interleaving Static Analysis and LLM Prompting SOAP Patrick Chapman University of California, Davis, Cindy Rubio-González University of California at Davis, Aditya V. Thakur University of California at Davis |