English

Deep API Programmer: Learning to Program with APIs

Artificial Intelligence 2017-04-17 v1 Machine Learning

Abstract

We present DAPIP, a Programming-By-Example system that learns to program with APIs to perform data transformation tasks. We design a domain-specific language (DSL) that allows for arbitrary concatenations of API outputs and constant strings. The DSL consists of three family of APIs: regular expression-based APIs, lookup APIs, and transformation APIs. We then present a novel neural synthesis algorithm to search for programs in the DSL that are consistent with a given set of examples. The search algorithm uses recently introduced neural architectures to encode input-output examples and to model the program search in the DSL. We show that synthesis algorithm outperforms baseline methods for synthesizing programs on both synthetic and real-world benchmarks.

Keywords

Cite

@article{arxiv.1704.04327,
  title  = {Deep API Programmer: Learning to Program with APIs},
  author = {Surya Bhupatiraju and Rishabh Singh and Abdel-rahman Mohamed and Pushmeet Kohli},
  journal= {arXiv preprint arXiv:1704.04327},
  year   = {2017}
}

Comments

8 pages + 4 pages of supplementary material. Submitted to IJCAI 2017