Aroma: Code Recommendation via Structural Code Search
Not on the map. Why?
Abstract (arXiv)
Programmers often write code that has similarity to existing code written somewhere. A tool that could help programmers to search such similar code would be immensely useful. Such a tool could help programmers to extend partially written code snippets to completely implement necessary functionality, help to discover extensions to the partial code which are commonly included by other programmers, help to cross-check against similar code written by other programmers, or help to add extra code which would fix common mistakes and errors. We propose Aroma, a tool and technique for code recommendation via structural code search. Aroma indexes a huge code corpus including thousands of open-source projects, takes a partial code snippet as input, searches the corpus for method bodies containing the partial code snippet, and clusters and intersects the results of the search to recommend a small set of succinct code snippets which both contain the query snippet and appear as part of several methods in the corpus. We evaluated Aroma on 2000 randomly selected queries created from the corpus, as well as 64 queries derived from code snippets obtained from Stack Overflow, a popular website for discussing code. We implemented Aroma for 4 different languages, and developed an IDE plugin for Aroma. Furthermore, we conducted a study where we asked 12 programmers to complete programming tasks using Aroma, and collected their feedback. Our results indicate that Aroma is capable of retrieving and recommending relevant code snippets efficiently.
Key facts. Cited by 29 papers in the map (data through 7 Oct 2026). First posted on arXiv 4 Dec 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 8; 2022: 14; 2023: 6; 2024: 0; 2025: 0; 2026: 1.
29 papers.
Sort:
By area:
- 2021CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generationcited by 732
- 2021CodeNet: A Large-Scale AI for Code Dataset for Learning a Diversity of Coding Taskscited by 199
- 2022ReACC: A Retrieval-Augmented Code Completion Frameworkcited by 117
- 2021How could Neural Networks understand Programs?cited by 26
- 2023RAPGen: An Approach for Fixing Code Inefficiencies in Zero-Shotcited by 14
- 2022Code Recommendation for Open Source Software Developerscited by 13
- 2021Multimodal Representation for Neural Code Searchcited by 11
- 2021Toward Code Generation: A Survey and Lessons from Semantic Parsingcited by 8
- 2022CodeS: Towards Code Model Generalization Under Distribution Shiftcited by 6
- 2022DeepPERF: A Deep Learning-Based Approach For Improving Software Performancecited by 6
- 2023GenCodeSearchNet: A Benchmark Test Suite for Evaluating Generalization in Programming Language Understandingcited by 6
- 2021Autoencoders as Tools for Program Synthesiscited by 4
17 more
- 2022InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignmentscited by 4
- 2021Senatus -- A Fast and Accurate Code-to-Code Recommendation Enginecited by 3
- 2022SapientML: Synthesizing Machine Learning Pipelines by Learning from Human-Written Solutionscited by 3
- 2022GitRank: A Framework to Rank GitHub Repositoriescited by 3
- 2022Towards Top-Down Automated Development in Limited Scopes: A Neuro-Symbolic Framework from Expressibles to Executablescited by 2
- 2026LogicLens: Leveraging Semantic Code Graph to explore Multi Repository large systemscited by 2
- 2022Addressing Leakage in Self-Supervised Contextualized Code Retrievalcited by 1
- 2022Are Machine Programming Systems using Right Source-Code Measures to Select Code Repositories?cited by 1
- 2023Implant Global and Local Hierarchy Information to Sequence based Code Representation Modelscited by 1
- 2023Deduplicating and Ranking Solution Programs for Suggesting Reference Solutionscited by 1
- 2021Report of the Workshop on Program Synthesis for Scientific Computingcited by 0
- 2022Code Sophistication: From Code Recommendation to Logic Recommendationcited by 0
- 2022CV4Code: Sourcecode Understanding via Visual Code Representationscited by 0
- 2022CSSAM:Code Search via Attention Matching of Code Semantics and Structurescited by 0
- 2022API-Miner: an API-to-API Specification Recommendation Enginecited by 0
- 2023A Study of Variable-Role-based Feature Enrichment in Neural Models of Codecited by 0
- 2023CodeScholar: Growing Idiomatic Code Examplescited by 0
- 2026LogicLens: Leveraging Semantic Code Graph to explore Multi Repository large systems15 Jan 2026
- 2023CodeScholar: Growing Idiomatic Code Examples23 Dec 2023
- 2023GenCodeSearchNet: A Benchmark Test Suite for Evaluating Generalization in Programming Language Understanding16 Nov 2023
- 2023Deduplicating and Ranking Solution Programs for Suggesting Reference Solutions16 Jul 2023
- 2023RAPGen: An Approach for Fixing Code Inefficiencies in Zero-Shot29 Jun 2023
- 2023Implant Global and Local Hierarchy Information to Sequence based Code Representation Models14 Mar 2023
- 2023A Study of Variable-Role-based Feature Enrichment in Neural Models of Code8 Mar 2023
- 2022API-Miner: an API-to-API Specification Recommendation Engine14 Dec 2022
- 2022Code Recommendation for Open Source Software Developers15 Oct 2022
- 2022Are Machine Programming Systems using Right Source-Code Measures to Select Code Repositories?24 Sep 2022
- 2022Towards Top-Down Automated Development in Limited Scopes: A Neuro-Symbolic Framework from Expressibles to Executables4 Sep 2022
- 2022CSSAM:Code Search via Attention Matching of Code Semantics and Structures8 Aug 2022
17 more
- 2022InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments28 Jun 2022
- 2022DeepPERF: A Deep Learning-Based Approach For Improving Software Performance27 Jun 2022
- 2022CodeS: Towards Code Model Generalization Under Distribution Shift11 Jun 2022
- 2022CV4Code: Sourcecode Understanding via Visual Code Representations11 May 2022
- 2022GitRank: A Framework to Rank GitHub Repositories4 May 2022
- 2022Addressing Leakage in Self-Supervised Contextualized Code Retrieval17 Apr 2022
- 2022ReACC: A Retrieval-Augmented Code Completion Framework15 Mar 2022
- 2022SapientML: Synthesizing Machine Learning Pipelines by Learning from Human-Written Solutions18 Feb 2022
- 2022Code Sophistication: From Code Recommendation to Logic Recommendation19 Jan 2022
- 2021Senatus -- A Fast and Accurate Code-to-Code Recommendation Engine5 Nov 2021
- 2021Autoencoders as Tools for Program Synthesis16 Aug 2021
- 2021Multimodal Representation for Neural Code Search2 Jul 2021
- 2021CodeNet: A Large-Scale AI for Code Dataset for Learning a Diversity of Coding Tasks25 May 2021
- 2021How could Neural Networks understand Programs?10 May 2021
- 2021Toward Code Generation: A Survey and Lessons from Semantic Parsing26 Apr 2021
- 2021CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generation9 Feb 2021
- 2021Report of the Workshop on Program Synthesis for Scientific Computing2 Feb 2021
- 2022ReACC: A Retrieval-Augmented Code Completion Frameworkcited by 117
- 2022ReACC: A Retrieval-Augmented Code Completion Framework15 Mar 2022
- 2021CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generationcited by 732
- 2021CodeNet: A Large-Scale AI for Code Dataset for Learning a Diversity of Coding Taskscited by 199
- 2021How could Neural Networks understand Programs?cited by 26
- 2023RAPGen: An Approach for Fixing Code Inefficiencies in Zero-Shotcited by 14
- 2022Code Recommendation for Open Source Software Developerscited by 13
- 2021Multimodal Representation for Neural Code Searchcited by 11
- 2021Toward Code Generation: A Survey and Lessons from Semantic Parsingcited by 8
- 2022CodeS: Towards Code Model Generalization Under Distribution Shiftcited by 6
- 2022DeepPERF: A Deep Learning-Based Approach For Improving Software Performancecited by 6
- 2023GenCodeSearchNet: A Benchmark Test Suite for Evaluating Generalization in Programming Language Understandingcited by 6
- 2021Autoencoders as Tools for Program Synthesiscited by 4
- 2022InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignmentscited by 4
12 most cited of 28 All 28 (JSON)
- 2026LogicLens: Leveraging Semantic Code Graph to explore Multi Repository large systems15 Jan 2026
- 2023CodeScholar: Growing Idiomatic Code Examples23 Dec 2023
- 2023GenCodeSearchNet: A Benchmark Test Suite for Evaluating Generalization in Programming Language Understanding16 Nov 2023
- 2023Deduplicating and Ranking Solution Programs for Suggesting Reference Solutions16 Jul 2023
- 2023RAPGen: An Approach for Fixing Code Inefficiencies in Zero-Shot29 Jun 2023
- 2023Implant Global and Local Hierarchy Information to Sequence based Code Representation Models14 Mar 2023
- 2023A Study of Variable-Role-based Feature Enrichment in Neural Models of Code8 Mar 2023
- 2022API-Miner: an API-to-API Specification Recommendation Engine14 Dec 2022
- 2022Code Recommendation for Open Source Software Developers15 Oct 2022
- 2022Are Machine Programming Systems using Right Source-Code Measures to Select Code Repositories?24 Sep 2022
- 2022Towards Top-Down Automated Development in Limited Scopes: A Neuro-Symbolic Framework from Expressibles to Executables4 Sep 2022
- 2022CSSAM:Code Search via Attention Matching of Code Semantics and Structures8 Aug 2022
12 newest of 28 All 28 (JSON)