Litcius/Paper detail

Trace-Guided Inductive Synthesis of Recursive Functional Programs

Yongwei Yuan, Arjun Radhakrishna, Roopsha Samanta

2023Proceedings of the ACM on Programming Languages16 citationsDOIOpen Access PDF

Abstract

We propose a novel trace-guided approach to tackle the challenges of ambiguity and generalization in synthesis of recursive functional programs from input-output examples. Our approach augments the search space of programs with recursion traces consisting of recursive subcalls of the programs. Our method is based on a new version space algebra (VSA) for succinct representation and efficient manipulation of pairs of recursion traces and programs that are consistent with each other. We have implemented this approach in a tool called SyRup and evaluated it on benchmarks from prior work. Our evaluation demonstrates that SyRup not only requires fewer examples to achieve a certain success rate than existing synthesizers, but is also less sensitive to the quality of the examples.

Topics & Concepts

Recursion (computer science)TRACE (psycholinguistics)GeneralizationComputer scienceRepresentation (politics)Functional programmingAmbiguityTheoretical computer scienceMutual recursionSpace (punctuation)Program synthesisAlgebra over a fieldProgramming languageMathematicsPhilosophyMathematical analysisOperating systemLinguisticsPure mathematicsLawPoliticsPolitical scienceParallel Computing and Optimization TechniquesLogic, programming, and type systemsSoftware Engineering Research