Going Bananas! - Unfolding Program Synthesis with Origami
Matheus Campos Fernandes, Fabr\'icio Olivetti de Fran\c{c}a and, Emilio Francesquini

TL;DR
This paper introduces Origami, a program synthesis technique leveraging recursion schemes like folding and unfolding to improve the synthesis of recursive programs, demonstrating superior performance on benchmark problems.
Contribution
The work extends the Origami technique by incorporating various recursion schemes, enhancing its ability to synthesize complex recursive programs more effectively.
Findings
Origami outperforms previous algorithms on benchmark suite
Achieves 25% more problem solutions than HOTGP
Consistently finds solutions where others struggle
Abstract
Automatically creating a computer program using input-output examples can be a challenging task, especially when trying to synthesize computer programs that require loops or recursion. Even though the use of recursion can make the algorithmic description more succinct and declarative, this concept creates additional barriers to program synthesis algorithms such as the creation and the (tentative) evaluation of non-terminating programs. One reason is that the recursive function must define how to traverse (or generate) the data structure and, at the same time, how to process it. In functional programming, the concept of recursion schemes decouples these two tasks by putting a major focus on the latter. This can also help to avoid some of the pitfalls of recursive functions during program synthesis, as argued in a previous work where we introduced the Origami technique. In our previous…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsTeaching and Learning Programming · Advanced Materials and Mechanics · Architecture and Computational Design
