FrAngel: Component-Based Synthesis with Control Structures

11/13/2018
by   Kensen Shi, et al.
0

In component-based program synthesis, the synthesizer generates a program given a library of components (functions). Existing component-based synthesizers have difficulty synthesizing loops and other control structures, and they often require formal specifications of the components, which can be expensive to generate. We present FrAngel, a new approach to component-based synthesis that can synthesize short Java functions with control structures when given a desired signature, a set of input-output examples, and a collection of libraries (without formal specifications). FrAngel aims to discover programs with many distinct behaviors by combining two main ideas. First, it mines code fragments from partially-successful programs that only pass some of the examples. These extracted fragments are often useful for synthesis due to a property that we call special-case similarity. Second, FrAngel uses angelic conditions as placeholders for control structure conditions and optimistically evaluates the resulting program sketches. Angelic conditions decompose the synthesis process: FrAngel first finds promising partial programs and later fills in their missing conditions. We demonstrate that FrAngel can synthesize a variety of interesting programs with combinations of control structures within seconds, significantly outperforming prior state-of-the-art.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/09/2020

Modeling Black-Box Components with Probabilistic Synthesis

This paper is concerned with synthesizing programs based on black-box or...
research
01/19/2022

Code Sophistication: From Code Recommendation to Logic Recommendation

A typical approach to programming is to first code the main execution sc...
research
03/09/2023

Hierarchical Neural Program Synthesis

Program synthesis aims to automatically construct human-readable program...
research
07/13/2017

On Repair with Probabilistic Attribute Grammars

Program synthesis and repair have emerged as an exciting area of researc...
research
03/08/2021

Program Synthesis Over Noisy Data with Guarantees

We explore and formalize the task of synthesizing programs over noisy da...
research
02/19/2020

Holistic Specifications for Robust Programs

Functional specifications describe what program components do: the suffi...
research
05/25/2023

Learning-Based Automatic Synthesis of Software Code and Configuration

Increasing demands in software industry and scarcity of software enginee...

Please sign up or login with your details

Forgot password? Click here to reset