2017
DOI: 10.1145/3158151
|View full text |Cite
|
Sign up to set email alerts
|

Program synthesis using abstraction refinement

Abstract: We present a new approach to example-guided program synthesis based on counterexample-guided abstraction refinement. Our method uses the abstract semantics of the underlying DSL to find a program P whose abstract behavior satisfies the examples. However, since program P may be spurious with respect to the concrete semantics, our approach iteratively refines the abstraction until we either find a program that satisfies the examples or prove that no such DSL program exists. Because many programs have the same in… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
93
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
7
1
1

Relationship

5
4

Authors

Journals

citations
Cited by 76 publications
(95 citation statements)
references
References 58 publications
0
93
0
Order By: Relevance
“…This paper is related to a long line of recent work on program synthesis [1, 2, 6, 7, 22, 26-28, 32, 35, 36, 41, 42, 45-49, 53, 55]. While the goal of program synthesis is always to produce a program that satisfies the given specification, different synthesizers use different forms of specifications, including input-output examples [6,22,26,42,53], logical constraints [47][48][49], refinement types [41], or a reference implementation [27,35,45]. Our technique belongs in the latter category in that it uses the original implementation as the specification.…”
Section: Related Workmentioning
confidence: 99%
“…This paper is related to a long line of recent work on program synthesis [1, 2, 6, 7, 22, 26-28, 32, 35, 36, 41, 42, 45-49, 53, 55]. While the goal of program synthesis is always to produce a program that satisfies the given specification, different synthesizers use different forms of specifications, including input-output examples [6,22,26,42,53], logical constraints [47][48][49], refinement types [41], or a reference implementation [27,35,45]. Our technique belongs in the latter category in that it uses the original implementation as the specification.…”
Section: Related Workmentioning
confidence: 99%
“…Program analysis for program synthesis. Given the large search space that must be explored by program synthesizers, a common trick is to perform lightweight program analysis to prune the search space [Feser et al 2015;Polikarpova et al 2016;Wang et al 2017bWang et al , 2018b. The particular flavor of program analysis varies between different synthesizers and ranges from domain-specific deduction [Feser et al 2015;Wang et al 2017b] to abstract interpretation [Wang et al 2018b] to SMT-based reasoning [Feng et al 2018;Polikarpova et al 2016].…”
Section: Related Workmentioning
confidence: 99%
“…The particular flavor of program analysis varies between different synthesizers and ranges from domain-specific deduction [Feser et al 2015;Wang et al 2017b] to abstract interpretation [Wang et al 2018b] to SMT-based reasoning [Feng et al 2018;Polikarpova et al 2016]. Furthermore, some of these techniques leverage program analysis to construct a compact version space [Polozov and Gulwani 2015;Wang et al 2018b] while others use it to prune partial programs in enumerative search [Feng et al 2018;Wang et al 2017b]. Similar to these efforts, we also use program analysis to prove infeasibility of partial programs but with two key differences: First, our analysis is tailored to table transformation programs and infers inclusion constraints between tables.…”
Section: Related Workmentioning
confidence: 99%
“…SyGuS [2] is applied to various tasks related to program synthesis, e.g., [13,17,25,33,35,41]. However, the formal grammar in those applications is typically given or constructed from user-provided examples.…”
Section: Related Workmentioning
confidence: 99%