@inproceedings{bd42788485014ff5b28e6f46530a47f1,
title = "Deep API Learning",
abstract = "Developers often wonder how to implement a certain functionality (e.g., how to parse XML files) using APIs. Obtaining an API usage sequence based on an API-related natural language query is very helpful in this regard. Given a query, existing approaches utilize information retrieval models to search for matching API sequences. These approaches treat queries and APIs as bags-of-words and lack a deep understanding of the semantics of the query. We propose DeepAPI, a deep learning based approach to generate API usage sequences for a given natural language query. Instead of a bag-of-words assumption, it learns the sequence of words in a query and the sequence of associated APIs. DeepAPI adapts a neural language model named RNN Encoder-Decoder. It encodes a word sequence (user query) into a fixed-length context vector, and generates an API sequence based on the context vector. We also augment the RNN Encoder-Decoder by considering the importance of individual APIs. We empirically evaluate our approach with more than 7 million annotated code snippets collected from GitHub. The results show that our approach generates largely accurate API sequences and outperforms the related approaches.",
keywords = "API, API usage, Code search, Deep learning, RNN",
author = "Xiaodong Gu and Hongyu Zhang and Dongmei Zhang and Sunghun Kim",
year = "2016",
month = nov,
day = "1",
doi = "10.1145/2950290.2950334",
language = "English",
series = "Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering",
publisher = "Association for Computing Machinery",
pages = "631--642",
editor = "Zhendong Su and Thomas Zimmermann and Jane Cleland-Huang",
booktitle = "FSE 2016 - Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering",
note = "24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016 ; Conference date: 13-11-2016 Through 18-11-2016",
}