2022
DOI: 10.1145/3498682
|View full text |Cite
|
Sign up to set email alerts
|

Bottom-up synthesis of recursive functional programs using angelic execution

Abstract: We present a novel bottom-up method for the synthesis of functional recursive programs. While bottom-up synthesis techniques can work better than top-down methods in certain settings, there is no prior technique for synthesizing recursive programs from logical specifications in a purely bottom-up fashion. The main challenge is that effective bottom-up methods need to execute sub-expressions of the code being synthesized, but it is impossible to execute a recursive subexpression of a program that has not been f… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
4
3

Relationship

1
6

Authors

Journals

citations
Cited by 21 publications
(5 citation statements)
references
References 30 publications
0
5
0
Order By: Relevance
“…Whilst we compared our approach (with graded + types + examples considered at the end) to Myth (with types + examples integrated) to show that grading reduces the number of examples, comparing with the assertion-based approach in Smyth is further work. Another recent work, Burst, also leverages the Myth benchmark, but using a 'bottom-up' technique [41] (in contrast to our top-down approach, Section 4.2). The bottom-up approach synthesises a sequence of complete programs which can be refined and tested under an 'angelic semantics'.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…Whilst we compared our approach (with graded + types + examples considered at the end) to Myth (with types + examples integrated) to show that grading reduces the number of examples, comparing with the assertion-based approach in Smyth is further work. Another recent work, Burst, also leverages the Myth benchmark, but using a 'bottom-up' technique [41] (in contrast to our top-down approach, Section 4.2). The bottom-up approach synthesises a sequence of complete programs which can be refined and tested under an 'angelic semantics'.…”
Section: Discussionmentioning
confidence: 99%
“…In standard terminology, our algorithm is 'top-down' (see, e.g., [17,47,23,53]), or goal-directed, in which we start with a type goal and an input context and progress by gradually building the syntax tree from the empty term following the focussing-ordered rules of our calculus. This contrasts with 'bottom-up' approaches [2,41,44] which maintain complete programs which can be executed (tested) and combined.…”
Section: Algorithmic Implementationmentioning
confidence: 99%
“…Tree automata underlie many practical algorithms for synthesis based on compactly representing large spaces of programs and expressions [Gulwani 2011;Handa and Rinard 2020;Koppel et al 2022;Miltner et al 2022;Wang et al 2017aWang et al ,b, 2018. The main idea is to efficiently represent classes of expressions which are equivalent with respect to some examples.…”
Section: Discussionmentioning
confidence: 99%
“…The result was a potentially large transition system, not a compact program. The use of tree automata that work over syntax trees was advanced in [Madhusudan 2011] and has been used for practical algorithms in several program synthesis contexts [Handa and Rinard 2020;Koppel et al 2022;Miltner et al 2022;Wang et al 2017aWang et al ,b, 2018.…”
Section: Related Workmentioning
confidence: 99%
“…Intuitively, FTAs are useful in synthesis because they can compactly encode a set of programs, represented in terms of their abstract syntax tree [Miltner et al 2022;Wang et al 2017Wang et al , 2018. In particular, when used in the context of synthesis, states of the FTA correspond to values (e.g., integers), and the alphabet corresponds to the set of DSL operators (e.g., +, ×).…”
Section: Background On Synthesis Using Ftasmentioning
confidence: 99%