Structural Code Search using Natural Language Queries

πŸ“… 2025-07-02
πŸ“ˆ Citations: 0
✨ Influential: 0
πŸ“„ PDF
πŸ€– AI Summary
Existing structured code search tools rely on domain-specific languages (DSLs) that are difficult to learn and use, hindering developers’ efficient retrieval of API usage examples, code patterns, and support for systematic refactoring. Method: We propose the first general framework integrating large language models (LLMs) with structured code search, enabling automatic and accurate translation of natural language queries into DSLs such as Semgrep and GQL. Contribution/Results: We introduce a novel Java benchmark comprising 400 realistic, developer-authored queries. On this benchmark, our approach achieves 55–70% precision and recall; its F1 score improves by up to 57% over semantic search baselines and 14% over LLM-only baselines. This significantly lowers the usability barrier while enhancing both retrieval accuracy and practical utility for real-world development tasks.

Technology Category

Application Category

πŸ“ Abstract
Searching code is a common task that developers perform to understand APIs, learn common code patterns, and navigate code. Currently, developers most commonly search using keywords and regular expressions that are easy to use and widely available. Beyond keywords and regular expressions, structural code search tools allow developers to search for code based on its syntactic structure. This has numerous applications ranging from bug finding to systematically refactoring code. However, these structural code search tools operate on queries expressed in domain-specific languages (DSL) that can be difficult to learn and write. We propose to allow developers to use natural language to search for code structurally. Expressing queries in natural language provides an intuitive way to search for code and lowers the barrier to entry. In this work, we develop a novel general approach that combines the reasoning capabilities of an LLM to interpret natural language search queries with the power of structural search tools to efficiently and accurately retrieve relevant code. We then instantiate this approach for two structural code search DSLs: Semgrep and GQL. In our evaluation, we construct a new benchmark for structural code search consisting of 400 queries over 10 Java projects. We show that our approach for structural code search based on translating NL queries to DSL queries using an LLM is effective and robust, achieving a high precision and recall ranging from 55% - 70%. Further, our approach significantly outperforms baselines based on semantic code search and LLM retrievals by up to 57% and 14% on F1 scores.
Problem

Research questions and friction points this paper is trying to address.

Enables natural language queries for structural code search
Reduces complexity of domain-specific language (DSL) queries
Improves precision and recall in retrieving relevant code
Innovation

Methods, ideas, or system contributions that make the work stand out.

LLM translates natural language to DSL
Combines LLM reasoning with structural search
Achieves high precision and recall rates
πŸ”Ž Similar Papers
No similar papers found.