Stepping Stones to Inductive Synthesis of Low-Level Looping Programs

11/26/2018
by   Christopher D. Rosin, et al.
0

Inductive program synthesis, from input/output examples, can provide an opportunity to automatically create programs from scratch without presupposing the algorithmic form of the solution. For induction of general programs with loops (as opposed to loop-free programs, or synthesis for domain-specific languages), the state of the art is at the level of introductory programming assignments. Most problems that require algorithmic subtlety, such as fast sorting, have remained out of reach without the benefit of significant problem-specific background knowledge. A key challenge is to identify cues that are available to guide search towards correct looping programs. We present MAKESPEARE, a simple delayed-acceptance hillclimbing method that synthesizes low-level looping programs from input/output examples. During search, delayed acceptance bypasses small gains to identify significantly-improved stepping stone programs that tend to generalize and enable further progress. The method performs well on a set of established benchmarks, and succeeds on the previously unsolved "Collatz Numbers" program synthesis problem. Additional benchmarks include the problem of rapidly sorting integer arrays, in which we observe the emergence of comb sort (a Shell sort variant that is empirically fast). MAKESPEARE has also synthesized a record-setting program on one of the puzzles from the TIS-100 assembly language programming game.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/29/2021

Latent Execution for Neural Program Synthesis Beyond Domain-Specific Languages

Program synthesis from input-output examples has been a long-standing ch...
research
04/14/2017

Deep API Programmer: Learning to Program with APIs

We present DAPIP, a Programming-By-Example system that learns to program...
research
06/05/2017

Learning Neural Programs To Parse Programs

In this work, we study an important problem: learning programs from inpu...
research
09/26/2018

General-purpose Declarative Inductive Programming with Domain-Specific Background Knowledge for Data Wrangling Automation

Given one or two examples, humans are good at understanding how to solve...
research
04/06/2023

A Mathematical Benchmark for Inductive Theorem Provers

We present a benchmark of 29687 problems derived from the On-Line Encycl...
research
01/08/2023

A Divide-Align-Conquer Strategy for Program Synthesis

A major bottleneck in search-based program synthesis is the exponentiall...
research
05/18/2022

Transformer-based Program Synthesis for Low-Data Environments

Recent advancements in large pre-trained transformer models (GPT2/3, T5)...

Please sign up or login with your details

Forgot password? Click here to reset