Deep API Programmer: Learning to Program with APIs
This addresses the challenge of programming data transformations for users who need to automate tasks without manual coding, though it appears incremental as it builds on existing neural synthesis approaches.
The paper tackles the problem of automating data transformation tasks by learning to program with APIs, presenting DAPIP, a Programming-By-Example system that uses a novel neural synthesis algorithm to search for consistent programs in a domain-specific language, and it outperforms baseline methods on synthetic and real-world benchmarks.
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.