Revisiting, Benchmarking and Exploring API Recommendation: How Far Are We?
Yun Peng, Shuqing Li, Wenwei Gu, Yichen Li, Wenxuan Wang, Cuiyun Gao,, Michael Lyu

TL;DR
This paper revisits API recommendation, benchmarking 11 approaches and 4 IDEs, and introduces APIBench to evaluate and guide future improvements in API recommendation systems.
Contribution
It provides a unified benchmark for API recommendation, categorizes approaches, and offers insights and directions for enhancing API recommendation performance.
Findings
APIBench enables standardized evaluation of API recommendation methods.
Different approaches vary significantly in performance and applicability.
Insights highlight data, query reformulation, and cross-domain challenges.
Abstract
Application Programming Interfaces (APIs), which encapsulate the implementation of specific functions as interfaces, greatly improve the efficiency of modern software development. As numbers of APIs spring up nowadays, developers can hardly be familiar with all the APIs, and usually need to search for appropriate APIs for usage. So lots of efforts have been devoted to improving the API recommendation task. However, it has been increasingly difficult to gauge the performance of new models due to the lack of a uniform definition of the task and a standardized benchmark. For example, some studies regard the task as a code completion problem; while others recommend relative APIs given natural language queries. To reduce the challenges and better facilitate future research, in this paper, we revisit the API recommendation task and aim at benchmarking the approaches. Specifically, the paper…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Software Engineering Techniques and Practices
