• DocumentCode
    2074544
  • Title

    Mining API mapping for language migration

  • Author

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

  • Author_Institution
    Lab. for Internet Software Technol., Beijing, China
  • Volume
    1
  • fYear
    2010
  • fDate
    2-8 May 2010
  • Firstpage
    195
  • Lastpage
    204
  • 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.
  • Keywords
    Java; application program interfaces; data mining; API client code; API mapping mining; C#; Java2CSharp; MAM; application programming interfaces; automatic language migration tool; business requirements; error-prone task; human errors; open source organizations; Accuracy; Data mining; Educational institutions; Java; Libraries; Receivers; Software; API mapping relation; language migration;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2010 ACM/IEEE 32nd International Conference on
  • Conference_Location
    Cape Town
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-60558-719-6
  • Type

    conf

  • DOI
    10.1145/1806799.1806831
  • Filename
    6062087