• Corpus ID: 238634376

Searching for Replacement Classes

  title={Searching for Replacement Classes},
  author={Malavika Samak and Jos{\'e} Pablo Cambronero and Martin C. Rinard},
Software developers must often replace existing components in their systems to adapt to evolving environments or tooling. While traditional code search systems are effective at retrieving components with related functionality, it is much more challenging to retrieve components that can be used to directly replace existing functionality, as replacements must account for more fundamental program properties such as type compatibility. To address this problem, we introduce ClassFinder, a systemโ€ฆย 

Figures and Tables from this paper


Deep Code Search
A novel deep neural network named CODEnn (Code-Description Embedding Neural Network) is proposed, which jointly embeds code snippets and natural language descriptions into a high-dimensional vector space, in such a way that code snippet and its corresponding description have similar vectors.
Statistical learning approach for mining API usage mappings for code migration
StaMiner is a novel data-driven approach that statistically learns the mappings between APIs from the corpus of the corresponding client code of the APIs in two languages Java and C# and provides mappings for APIs with all possible arities.
Retrieval on source code: a neural code search
This paper investigates the use of natural language processing and information retrieval techniques to carry out natural language search directly over source code, i.e. without having a curated Q&A forum such as Stack Overflow at hand.
Deep learning code fragments for code clone detection
This work introduces learning-based detection techniques where everything for representing terms and fragments in source code is mined from the repository, and compared its approach to a traditional structure-oriented technique and found that it detected clones that were either undetected or suboptimally reported by the prominent tool Deckard.
Aroma: code recommendation via structural code search
The results indicate that Aroma is capable of retrieving and recommending relevant code snippets efficiently 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.
SourcererCC: Scaling Code Clone Detection to Big-Code
This paper presents a token-based clone detector, SourcererCC, that can detect both exact and near-miss clones from large inter-project repositories using a standard workstation, and evaluates the scalability, execution time, recall and precision, and compares it to four publicly available and state-of-the-art tools.
Synthesizing replacement classes
We present a new technique for automatically synthesizing replacement classes. The technique starts with an original class O and a potential replacement class R, then uses R to synthesize a new classโ€ฆ
Semantic code search via equational reasoning
This work presents a new approach to semantic code search based on equational reasoning, and the Yogo tool implementing this approach, which can find equivalent code in multiple languages from a single query.
Mining API mapping for language migration
This paper proposes a novel approach, called MAM (Mining API Mapping), that mines API mapping relations from one language to another using API client code, and shows the effectiveness of MAM.
Learning to Represent Programs with Graphs
This work proposes to use graphs to represent both the syntactic and semantic structure of code and use graph-based deep learning methods to learn to reason over program structures, and suggests that these models learn to infer meaningful names and to solve the VarMisuse task in many cases.