Mining API mapping for language migration

Hao Zhong, Suresh Thummalapenta, Tao Xie, Lu Zhang, Qing Wang

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

To address business requirements and to survive in competing markets, companies or open source organizations often have to release different versions of their projects in different languages. Manually migrating projects from one language to another (such as from Java to C#) is a tedious and error-prone task. To reduce manual effort or human errors, tools can be developed for automatic migration of projects from one language to another. However, these tools require the knowledge of how Application Programming Interfaces (APIs) of one language are mapped to APIs of the other language, referred to as API mapping relations. In this paper, we propose a novel approach, called MAM (Mining API Mapping), that mines API mapping relations from one language to another using API client code. MAM accepts a set of projects each with two versions in two languages and mines API mapping relations between those two languages based on how APIs are used by the two versions. These mined API mapping relations assist in migration of projects from one language to another. We implemented a tool and conducted two evaluations to show the effectiveness of MAM. The results show that our tool mines 25,805 unique mapping relations of APIs between Java and C# with more than 80% accuracy. The results also show that mined API mapping relations help reduce 54.4% compilation errors and 43.0% defects during migration of projects with an existing migration tool, called Java2CSharp. The reduction in compilation errors and defects is due to our new mined mapping relations that are not available with the existing migration tool.

Original languageEnglish (US)
Title of host publicationICSE 2010 - Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering
Pages195-204
Number of pages10
DOIs
StatePublished - Jul 23 2010
Externally publishedYes
Event32nd ACM/IEEE International Conference on Software Engineering, ICSE 2010 - Cape Town, South Africa
Duration: May 1 2010May 8 2010

Publication series

NameProceedings - International Conference on Software Engineering
Volume1
ISSN (Print)0270-5257

Other

Other32nd ACM/IEEE International Conference on Software Engineering, ICSE 2010
Country/TerritorySouth Africa
CityCape Town
Period5/1/105/8/10

Keywords

  • API mapping relation
  • language migration

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Mining API mapping for language migration'. Together they form a unique fingerprint.

Cite this