Deep API Programmer: Learning to Program with APIs

04/14/2017
by   Surya Bhupatiraju, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/12/2018

Neural Program Search: Solving Programming Tasks from Description and Examples

We present a Neural Program Search, an algorithm to generate programs fr...
research
02/21/2017

Synthesizing Imperative Programs from Examples Guided by Static Analysis

We present a novel algorithm that synthesizes imperative programs for in...
research
11/06/2016

Neuro-Symbolic Program Synthesis

Recent years have seen the proposal of a number of neural architectures ...
research
09/12/2019

Quantitative Programming by Examples

Programming-by-Example (PBE) systems synthesize an intended program in s...
research
09/17/2012

Textual Features for Programming by Example

In Programming by Example, a system attempts to infer a program from inp...
research
01/11/2022

Predictive Synthesis of API-Centric Code

Today's programmers, especially data science practitioners, make heavy u...
research
11/26/2018

Stepping Stones to Inductive Synthesis of Low-Level Looping Programs

Inductive program synthesis, from input/output examples, can provide an ...

Please sign up or login with your details

Forgot password? Click here to reset