Structural Code Search using Natural Language Queries

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Limpanukorn, Ben, Wang, Yanjun, Patterson, Zach, Garg, Pranav, Ramanathan, Murali Krishna, Ma, Xiaofei, Deoras, Anoop, Kim, Miryung
Format: Preprint
Veröffentlicht: 2025
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866918080921206784
author Limpanukorn, Ben
Wang, Yanjun
Patterson, Zach
Garg, Pranav
Ramanathan, Murali Krishna
Ma, Xiaofei
Deoras, Anoop
Kim, Miryung
author_facet Limpanukorn, Ben
Wang, Yanjun
Patterson, Zach
Garg, Pranav
Ramanathan, Murali Krishna
Ma, Xiaofei
Deoras, Anoop
Kim, Miryung
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2507_02107
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Structural Code Search using Natural Language Queries
Limpanukorn, Ben
Wang, Yanjun
Patterson, Zach
Garg, Pranav
Ramanathan, Murali Krishna
Ma, Xiaofei
Deoras, Anoop
Kim, Miryung
Software Engineering
Programming Languages
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.
title Structural Code Search using Natural Language Queries
topic Software Engineering
Programming Languages
url https://arxiv.org/abs/2507.02107