Searching Entangled Program Spaces

06/15/2022
by   James Koppel, et al.
0

Many problem domains, including program synthesis and rewrite-based optimization, require searching astronomically large spaces of programs. Existing approaches often rely on building specialized data structures – version-space algebras, finite tree automata, or e-graphs – to compactly represent these programs. To find a compact representation, existing data structures exploit independence of subterms; they blow up when the choices of subterms are entangled. We introduce equality-constrained tree automata (ECTAs), a generalization of the three aforementioned data structures that can efficiently represent large spaces of programs with entangled subterms. We present efficient algorithms for extracting programs from ECTAs, implemented in a performant Haskell library, . Using we construct Hectare, a type-driven program synthesizer for Haskell. Hectare significantly outperforms a state-of-the-art synthesizer Hoogle+ – providing an average speedup of 8x – despite its implementation being an order of magnitude smaller.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/27/2021

Version Space Algebras are Acyclic Tree Automata

Version space algebras are ways of representing spaces of programs which...
research
04/25/2018

Shape Neutral Analysis of Graph-based Data-structures

Malformed data-structures can lead to runtime errors such as arbitrary m...
research
09/22/2020

Inductive Program Synthesis Over Noisy Data

We present a new framework and associated synthesis algorithms for progr...
research
11/25/2017

A Language for Probabilistically Oblivious Computation

An oblivious computation is one that is free of direct and indirect info...
research
07/29/2018

Automatic Parallelization of Sequential Programs

Prior work on Automatically Scalable Computation (ASC) suggests that it ...
research
06/14/2016

Why is Compiling Lifted Inference into a Low-Level Language so Effective?

First-order knowledge compilation techniques have proven efficient for l...
research
10/21/2019

Reasoning About Recursive Tree Traversals

Traversals are commonly seen in tree data structures, and performance-en...

Please sign up or login with your details

Forgot password? Click here to reset