SimilarAPI: Mining Analogical APIs for Library Migration

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

1 Scopus citations

Abstract

Establishing API mappings between libraries is a prerequisite step for library migration tasks. Manually establishing API mappings is tedious due to the large number of APIs to be examined, and existing methods based on supervised learning requires unavailable already-ported or functionality similar applications. Therefore, we propose an unsupervised deep learning based approach to embed both API usage semantics and API description (name and document) semantics into vector space for inferring likely analogical API mappings between libraries. We implement a proof-of-concept website SimilarAPI (https://similarapi.appspot.com) which can recommend analogical APIs for 583,501 APIs of 111 pairs of analogical Java libraries with diverse functionalities. Video: Https://youtu.be/EAwD6l24vLQ

Original languageEnglish
Title of host publicationProceedings - 2020 ACM/IEEE 42nd International Conference on Software Engineering
Subtitle of host publicationCompanion, ICSE-Companion 2020
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages37-40
Number of pages4
ISBN (Electronic)9781450371223
DOIs
StatePublished - Oct 2020
Externally publishedYes
Event42nd ACM/IEEE International Conference on Software Engineering: Companion, ICSE-Companion 2020 - Seoul, Korea, Republic of
Duration: 27 Jun 202019 Jul 2020

Publication series

NameProceedings - 2020 ACM/IEEE 42nd International Conference on Software Engineering: Companion, ICSE-Companion 2020

Conference

Conference42nd ACM/IEEE International Conference on Software Engineering: Companion, ICSE-Companion 2020
Country/TerritoryKorea, Republic of
CitySeoul
Period27/06/2019/07/20

Keywords

  • Analogical API
  • Skip thoughts
  • Word embedding

Fingerprint

Dive into the research topics of 'SimilarAPI: Mining Analogical APIs for Library Migration'. Together they form a unique fingerprint.

Cite this