Searching entangled program spaces

10Citations
Citations of this article
5Readers
Mendeley users who have this article in their library.

Abstract

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 such spaces. At their core, all these data structures exploit independence of subterms; as a result, they cannot efficiently represent more complex program spaces, where the choices of subterms are entangled. We introduce equality-constrained tree automata (ECTAs), a new data structure, designed to compactly represent large spaces of programs with entangled subterms. We present efficient algorithms for extracting programs from ECTAs, implemented in a performant Haskell library, ecta. Using the ecta library, 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 8×-despite its implementation being an order of magnitude smaller.

Cite

CITATION STYLE

APA

Koppel, J., Guo, Z., De Vries, E., Solar-Lezama, A., & Polikarpova, N. (2022). Searching entangled program spaces. Proceedings of the ACM on Programming Languages, 6(ICFP). https://doi.org/10.1145/3547622

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free