Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation 2021
DOI: 10.1145/3453483.3454098
|View full text |Cite
|
Sign up to set email alerts
|

Example-guided synthesis of relational queries

Abstract: Program synthesis tasks are commonly specified via inputoutput examples. Existing enumerative techniques for such tasks are primarily guided by program syntax and only make indirect use of the examples. We identify a class of synthesis algorithms for programming-by-examples, which we call Example-Guided Synthesis (EGS), that exploits latent structure in the provided examples while generating candidate programs. We present an instance of EGS for the synthesis of relational queries and evaluate it on 86 tasks fr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3

Citation Types

0
3
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
3
3

Relationship

0
6

Authors

Journals

citations
Cited by 10 publications
(3 citation statements)
references
References 61 publications
0
3
0
Order By: Relevance
“…Synthesis from examples, or programming by examples (PBE), has been active in recent years and has seen successes in practice (e.g., [Polozov and Gulwani 2015]). In PBE, the goal is to synthesize a program consistent with a set of input-output examples; several domains have been explored, e.g., synthesis of database queries from examples [Shen et al 2014;Thakkar et al 2021;Wang et al 2017a] and from analysis of database-backed application code [Cheung et al 2013], synthesis of data completion scripts [Wang et al 2017c], data structure transformations [Feser et al 2015], and typed functional programs [Osera and Zdancewic 2015;Polikarpova et al 2016]. A common approach to PBE involves version space algebra [Mitchell 1982], where the idea is to capture the set of all programs that work on each example in a compact representation and then intersect the sets for each example to represent programs consistent with all examples (e.g., see [Gulwani 2011]).…”
Section: Related Workmentioning
confidence: 99%
“…Synthesis from examples, or programming by examples (PBE), has been active in recent years and has seen successes in practice (e.g., [Polozov and Gulwani 2015]). In PBE, the goal is to synthesize a program consistent with a set of input-output examples; several domains have been explored, e.g., synthesis of database queries from examples [Shen et al 2014;Thakkar et al 2021;Wang et al 2017a] and from analysis of database-backed application code [Cheung et al 2013], synthesis of data completion scripts [Wang et al 2017c], data structure transformations [Feser et al 2015], and typed functional programs [Osera and Zdancewic 2015;Polikarpova et al 2016]. A common approach to PBE involves version space algebra [Mitchell 1982], where the idea is to capture the set of all programs that work on each example in a compact representation and then intersect the sets for each example to represent programs consistent with all examples (e.g., see [Gulwani 2011]).…”
Section: Related Workmentioning
confidence: 99%
“…Relational Query Synthesis. Due to the importance of relational queries in the database industry and the programming challenges associated with them, many relational query synthesizers have been developed [29,31,36,37,39,47]. Among them, Scythe [39] supports standard SQL queries with subqueries and aggregations; EGS [36], ProSynth [29] and Alps [31] are datalog query synthesizers that synthesizes datalog queries using syntax and provenance guided search from input-output examples; Morpheus [12] and Viser [40] are table transformation synthesizers for data wrangling.…”
Section: Related Workmentioning
confidence: 99%
“…Sickle's focus is the computation-rich analytical SQL. Analytical SQL are not expressible in logic-based synthesizers [36] that requires relational queries to be "pure" (free of computations); algorithms for standard SQL [39,40] are insufficient due to lack of support for analytical operators (Section 5). As Sickle focuses on analytical computations, Sickle is not specially designed for data wrangling [12] or knowledge base querying tasks [29]; there is an opportunity to combine Sickle with Morpheus [13] or ProSynth [29] for tasks requiring all types of relational query features.…”
Section: Related Workmentioning
confidence: 99%