paper-with-me

Papers

Towards Synthesizing Complex Programs from Input-Output Examples

2017-06-05 · ICLR 2018 1 · Xinyun Chen, Chang Liu, Dawn Song

In recent years, deep learning techniques have been developed to improve the performance of program synthesis from input-output examples. Albeit its significant progress, the programs that can be synthesized by state-of-the-art approaches are still simple in terms of their complexity. In this work, we move a significant step forward along this direction by proposing a new class of challenging tasks in the domain of program synthesis from input-output examples: learning a context-free parser from pairs of input programs and their parse trees. We show that this class of tasks are much more challenging than previously studied tasks, and the test accuracy of existing approaches is almost 0%. We tackle the challenges by developing three novel techniques inspired by three novel observations, which reveal the key ingredients of using deep learning to synthesize a complex program. First, the use of a non-differentiable machine is the key to effectively restrict the search space. Thus our proposed approach learns a neural program operating a domain-specific non-differentiable machine. Second, recursion is the key to achieve generalizability. Thus, we bake-in the notion of recursion in the design of our non-differentiable machine. Third, reinforcement learning is the key to learn how to operate the non-differentiable machine, but it is also hard to train the model effectively with existing reinforcement learning algorithms from a cold boot. We develop a novel two-phase reinforcement learning-based search algorithm to overcome this issue. In our evaluation, we show that using our novel approach, neural parsing programs can be learned to achieve 100% test accuracy on test inputs that are 500x longer than the training samples.

📄 PDF Abstract BibTeX arXiv:1706.01284

Code (0)

등록된 구현이 없습니다.

Tasks

Program Synthesisreinforcement-learningReinforcement LearningReinforcement Learning (RL)

Similar Papers 제목 키워드 기반

Generating Pragmatic Examples to Train Neural Program Synthesizers

2023-11-09 · Saujas Vaduguru, Daniel Fried, Yewen Pu

Programming-by-example is the task of synthesizing a program that is consistent with a set of user-provided input-output examples. As examples are often an under-specification of one's intent, a good synthesizer must cho…

counterfactualCounterfactual ReasoningProgram Synthesis

Deep API Programmer: Learning to Program with APIs

2017-04-14 · Surya Bhupatiraju, Rishabh Singh, Abdel-rahman Mohamed, Pushmeet Kohli

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 …

Synthesizing Imperative Programs from Examples Guided by Static Analysis

2017-02-21 · Sunbeom So, Hakjoo Oh

We present a novel algorithm that synthesizes imperative programs for introductory programming courses. Given a set of input-output examples and a partial program, our algorithm generates a complete program that is consi…

Program Synthesis

SQUARES: A SQL Synthesizer Using Query Reverse Engineering

2020-08-31 · Pedro Orvalho, Miguel Terra-Neves; Miguel Ventura, Ruben Martins, Vasco Manquinho

Nowadays, many data analysts are domain experts, but they lack programming skills. As a result, many of them can provide examples of data transformations but are unable to produce the desired query. Hence, there is an in…

Enumerative SearchProgram SynthesisSQL Synthesis

Neural-Guided Deductive Search for Real-Time Program Synthesis from Examples

2018-04-03 · ICLR 2018 1 · Ashwin Kalyan, Abhishek Mohta, Oleksandr Polozov, Dhruv Batra 외

Synthesizing user-intended programs from a small number of input-output examples is a challenging problem with several important applications like spreadsheet manipulation, data wrangling and code refactoring. Existing s…

Program Synthesis