Survey of Code Search Based on Deep Learning
arXiv:2305.05959 · doi:10.1145/3628161
Abstract
Code writing is repetitive and predictable, inspiring us to develop various code intelligence techniques. This survey focuses on code search, that is, to retrieve code that matches a given query by effectively capturing the semantic similarity between the query and code. Deep learning, being able to extract complex semantics information, has achieved great success in this field. Recently, various deep learning methods, such as graph neural networks and pretraining models, have been applied to code search with significant progress. Deep learning is now the leading paradigm for code search. In this survey, we provide a comprehensive overview of deep learning-based code search. We review the existing deep learning-based code search framework which maps query/code to vectors and measures their similarity. Furthermore, we propose a new taxonomy to illustrate the state-of-the-art deep learning-based code search in a three-steps process: query semantics modeling, code semantics modeling, and matching modeling which involves the deep learning model training. Finally, we suggest potential avenues for future research in this promising field.
arXiv comment44 pages, 10 figures
References in corpus (21)
- Evaluating Large Language Models Trained on Code
- CodeSearchNet Challenge: Evaluating the State of Semantic Code Search
- Query Expansion Based on Crowd Knowledge for Code Search
- Self-Supervised Contrastive Learning for Code Retrieval and Summarization via Semantic-Preserving Transformations
- CoaCor: Code Annotation for Code Retrieval with Reinforcement Learning
- Deep Graph Matching and Searching for Semantic Code Retrieval
- Opportunities and Challenges in Code Search Tools
- StaQC: A Systematically Mined Question-Code Dataset from Stack Overflow
- SynCoBERT: Syntax-Guided Multi-Modal Contrastive Pre-Training for Code Representation
- Code Search: A Survey of Techniques for Finding Code
- Code Search based on Context-aware Code Translation
- Leveraging Code Generation to Improve Code Retrieval and Summarization via Dual Learning
- Cross-Domain Deep Code Search with Meta Learning
- On the Effectiveness of Transfer Learning for Code Search
- Public Git Archive: a Big Code dataset for all
- Neural Code Search Evaluation Dataset
- TranS^3: A Transformer-based Framework for Unifying Code Summarization and Code Search
- Revisiting Code Search in a Two-Stage Paradigm
- Neural Code Search Revisited: Enhancing Code Snippet Retrieval through Natural Language Intent
- Semantic Source Code Search: A Study of the Past and a Glimpse at the Future
- Improving Code Search with Hard Negative Sampling Based on Fine-tuning