Opportunities and Challenges in Code Search Tools
arXiv:2011.02297 · doi:10.1145/3480027
Abstract
Code search is a core software engineering task. Effective code search tools can help developers substantially improve their software development efficiency and effectiveness. In recent years, many code search studies have leveraged different techniques, such as deep learning and information retrieval approaches, to retrieve expected code from a large-scale codebase. However, there is a lack of a comprehensive comparative summary of existing code search approaches. To understand the research trends in existing code search studies, we systematically reviewed 81 relevant studies. We investigated the publication trends of code search studies, analyzed key components, such as codebase, query, and modeling technique used to build code search tools, and classified existing tools into focusing on supporting seven different search tasks. Based on our findings, we identified a set of outstanding challenges in existing studies and a research roadmap for future code search research.
arXiv comment35 pages, 7 figures
References in corpus (11)
- Efficient Estimation of Word Representations in Vector Space
- A Survey on Multi-Task Learning
- Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection
- TBar: Revisiting Template-based Automated Program Repair
- Easy over Hard: A Case Study on Deep Learning
- SWIM: Synthesizing What I Mean
- Query Expansion Based on Crowd Knowledge for Code Search
- CoaCor: Code Annotation for Code Retrieval with Reinforcement Learning
- Leveraging Code Generation to Improve Code Retrieval and Summarization via Dual Learning
- ROSF: Leveraging Information Retrieval and Supervised Learning for Recommending Code Snippets
- psc2code: Denoising Code Extraction from Programming Screencasts
Cited by in corpus (10)
- Code Search: A Survey of Techniques for Finding Code
- Code Search based on Context-aware Code Translation
- Multimodal Representation for Neural Code Search
- Survey of Code Search Based on Deep Learning
- Senatus -- A Fast and Accurate Code-to-Code Recommendation Engine
- Answering Uncertain, Under-Specified API Queries Assisted by Knowledge-Aware Human-AI Dialogue
- Towards Using Data-Influence Methods to Detect Noisy Samples in Source Code Corpora
- Deep Code Search with Naming-Agnostic Contrastive Multi-View Learning
- Zero-Shot Cross-Domain Code Search without Fine-Tuning
- AugmentedCode: Examining the Effects of Natural Language Resources in Code Retrieval Models