Modeling Black-Box Components with Probabilistic Synthesis

10/09/2020
by   Bruce Collie, et al.
0

This paper is concerned with synthesizing programs based on black-box oracles: we are interested in the case where there exists an executable implementation of a component or library, but its internal structure is unknown. We are provided with just an API or function signature, and aim to synthesize a program with equivalent behavior. To attack this problem, we detail Presyn: a program synthesizer designed for flexible interoperation with existing programs and compiler toolchains. Presyn uses high-level imperative control-flow structures and a pair of cooperating predictive models to efficiently narrow the space of potential programs. These models can be trained effectively on small corpora of synthesized examples. We evaluate Presyn against five leading program synthesizers on a collection of 112 synthesis benchmarks collated from previous studies and real-world software libraries. We show that Presyn is able to synthesize a wider range of programs than each of them with less human input. We demonstrate the application of our approach to real-world code and software engineering problems with two case studies: accelerator library porting and detection of duplicated library reimplementations.

READ FULL TEXT

page 2

page 5

page 11

research
11/13/2018

FrAngel: Component-Based Synthesis with Control Structures

In component-based program synthesis, the synthesizer generates a progra...
research
06/18/2020

IReEn: Iterative Reverse-Engineering of Black-Box Functions via Neural Program Synthesis

In this work, we investigate the problem of revealing the functionality ...
research
07/14/2020

Programming by Rewards

We formalize and study “programming by rewards” (PBR), a new approach fo...
research
06/24/2003

Signatures of small-world and scale-free properties in large computer programs

A large computer program is typically divided into many hundreds or even...
research
02/24/2022

Black-Box Algorithm Synthesis – Divide-and-Conquer and More

Algorithm synthesis is a newly emerging branch of program synthesis, tar...
research
08/13/2019

Type-Directed Program Synthesis and Constraint Generation for Accelerator Library Portability

Fast numerical libraries have been a cornerstone of scientific computing...
research
10/29/2018

Splitability Annotations: Optimizing Black-Box Function Composition in Existing Libraries

Data movement is a major bottleneck in parallel data-intensive applicati...

Please sign up or login with your details

Forgot password? Click here to reset