2014 · 95 citations · 30 references
ComputingComputer ScienceData MiningProgramming LanguagesSoftware EngineeringApplication Programming InterfacesMigration AutomationAccuracyAutomated Migration ToolsCode Similarity AnalysisEmpirical EvaluationSimilarity MeasuresSimilarity MetricsSoftware Code SimilarityStatistical Learning Theory
The same software product nowadays could appear in multiple platforms and devices. To address business needs, software companies develop a software product in a programming language and then migrate it to another one. To support that process, semi-automatic migration tools have been proposed. However, they require users to manually define the mappings between the respective APIs of the libraries used in two languages. To reduce such manual effort, we introduce StaMiner, 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#. Instead of using heuristics on the textual or structural similarity between APIs in two languages to map API methods and classes as in existing mining approaches, StaMiner is based on a statistical model that learns the mappings in such a corpus and provides mappings for APIs with all possible arities. Our empirical evaluation on several projects shows that StaMiner can detect API usage mappings with higher accuracy than a state-of-the-art approach. With the resulting API mappings mined by StaMiner, Java2CSharp, an existing migration tool, could achieve a higher level of accuracy.
30
Statistical phrase-based translation
Philipp Koehn, Franz Josef Och, Daniel Marcu · 2003 · 3.3K citations · Full text
Statistical machine translation
Choice Reviews Online · 2010 · 1.4K citations
On the naturalness of software
Abram Hindle, Earl T. Barr, Zhendong Su et al. · 2012 · 569 citations
Using structural context to recommend source code examples
Reid Holmes, Gail C. Murphy · 2005 · 385 citations · Full text