Using API-Embedding for API-Misuse Repair

Sebastian Nielebock, Robert Heumüller, Jacob Krüger, Frank Ortmeier

Onderzoeksoutput: Hoofdstuk in Boek/Rapport/CongresprocedureConferentiebijdrageAcademicpeer review

1 Citaat (Scopus)

Samenvatting

Application Programming Interfaces (APIs) are a way to reuse existing functionalities of one application in another one. However, due to lacking knowledge on the correct usage of a particular API, developers sometimes commit misuses, causing unintended or faulty behavior. To detect and eventually repair such misuses automatically, inferring API usage patterns from real-world code is the state-of-the-art. A contradiction to an identified usage pattern denotes a misuse, while applying the pattern fixes the respective misuse. The success of this process heavily depends on the quality of the usage patterns and on the code from which these are inferred. Thus, a lack of code demonstrating the correct usage makes it impossible to detect and fix a misuse. In this paper, we discuss the potential of using machine-learning vector embeddings to improve automatic program repair and to extend it towards cross-API and cross-language repair. We illustrate our ideas using one particular technique for API-embedding (i.e., API2Vec) and describe the arising possibilities and challenges.
Originele taal-2Engels
TitelProceedings - 2020 IEEE/ACM 42nd International Conference on Software Engineering Workshops, ICSEW 2020
UitgeverijAssociation for Computing Machinery, Inc
Pagina's1-2
Aantal pagina's2
ISBN van elektronische versie9781450379632
DOI's
StatusGepubliceerd - 27 jun. 2020

Bibliografische nota

DBLP License: DBLP's bibliographic metadata records provided through http://dblp.org/ are distributed under a Creative Commons CC0 1.0 Universal Public Domain Dedication. Although the bibliographic metadata records are provided consistent with CC0 1.0 Dedication, the content described by the metadata records is not. Content may be subject to copyright, rights of privacy, rights of publicity and other restrictions.

Financiering

In this paper, we proposed the idea of combining API2Vec with API misuse repair. API2Vec introduced the idea of using a vector representation to find similar API usages across different APIs (and even programming languages), where APIs must not necessarily share syntactical similarities. While promising, we also identified important challenges, for example, learning appropriate neural networks or collecting empirical evidence on whether similar patterns exhibit similar structures in the API2Vec space. Arguably, other machine-learning techniques can also be adopted to facilitate API misuse repair, but face similar problems. Acknowledgments. This research has been supported by the German Research Council DFG (grant no. SA 465/49-3).

Vingerafdruk

Duik in de onderzoeksthema's van 'Using API-Embedding for API-Misuse Repair'. Samen vormen ze een unieke vingerafdruk.

Citeer dit