Search papers, labs, and topics across Lattice.
DAInfer+ infers API specifications from library documentation by using NLP to interpret informal semantics and reduce specification inference to an optimization problem. The approach leverages sentence embedding models to derive memory operation abstractions from API descriptions, which are then used to retrieve data-flow and aliasing relations. Neurosymbolic optimization is employed to efficiently solve the optimization problem, generating precise data-flow and aliasing specifications.
Sentence embeddings beat prompted LLMs at extracting API semantics from documentation, achieving >82% recall and >79% precision in data-flow and alias relation inference.
Modern software systems heavily rely on various libraries, which require understanding the API semantics in static analysis. However, summarizing API semantics remains challenging due to complex implementations or unavailable library code. This paper presents DAInfer+, a novel approach for inferring API specifications from library documentation. We employ Natural Language Processing (NLP) to interpret informal semantic information provided by the documentation, which enables us to reduce the specification inference to an optimization problem. Specifically, we investigate the effectiveness of sentence embedding models and Large Language Models (LLMs) in deriving memory operation abstractions from API descriptions. These abstractions are used to retrieve data-flow and aliasing relations to generate comprehensive API specifications. To solve the optimization problem efficiently, we propose neurosymbolic optimization, yielding precise data-flow and aliasing specifications. Our evaluation of popular Java libraries shows that zero-shot sentence embedding models outperform few-shot prompted LLMs in robustness, capturing fine-grained semantic nuances more effectively. While our initial attempts using two-stage LLM prompting yielded promising results, we found that the embedding-based approach proved superior. Specifically, these models achieve over 82% recall and 85% precision for data-flow inference and 88% recall and 79% precision for alias relations, all within seconds. These results demonstrate the practical value of DAInfer+ in library-aware static analysis.