Learning abstractions for program synthesis

12Citations
Citations of this article
19Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

Many example-guided program synthesis techniques use abstractions to prune the search space. While abstraction-based synthesis has proven to be very powerful, a domain expert needs to provide a suitable abstract domain, together with the abstract transformers of each DSL construct. However, coming up with useful abstractions can be non-trivial, as it requires both domain expertise and knowledge about the synthesizer. In this paper, we propose a new technique for learning abstractions that are useful for instantiating a general synthesis framework in a new domain. Given a DSL and a small set of training problems, our method uses tree interpolation to infer reusable predicate templates that speed up synthesis in a given domain. Our method also learns suitable abstract transformers by solving a certain kind of second-order constraint solving problem in a data-driven way. We have implemented the proposed method in a tool called Atlas and evaluate it in the context of the Blaze meta-synthesizer. Our evaluation shows that (a) Atlas can learn useful abstract domains and transformers from few training problems, and (b) the abstractions learned by Atlas allow Blaze to achieve significantly better results compared to manually-crafted abstractions.

References Powered by Scopus

Interpolation and SAT-based model checking

636Citations
N/AReaders
Get full text

Automating string processing in spreadsheets using input-output examples

439Citations
N/AReaders
Get full text

The software model checker Blast: Applications to software engineering

427Citations
N/AReaders
Get full text

Cited by Powered by Scopus

Semantics-guided synthesis

21Citations
N/AReaders
Get full text

Guiding dynamic programing via structural probability for accelerating programming by example

14Citations
N/AReaders
Get full text

Synthesizing abstract transformers

8Citations
N/AReaders
Get full text

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Cite

CITATION STYLE

APA

Wang, X., Anderson, G., Dillig, I., & McMillan, K. L. (2018). Learning abstractions for program synthesis. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 10981 LNCS, pp. 407–426). Springer Verlag. https://doi.org/10.1007/978-3-319-96145-3_22

Readers over time

‘18‘19‘20‘21‘2202468

Readers' Seniority

Tooltip

PhD / Post grad / Masters / Doc 9

90%

Professor / Associate Prof. 1

10%

Readers' Discipline

Tooltip

Computer Science 10

91%

Engineering 1

9%

Save time finding and organizing research with Mendeley

Sign up for free
0