Synthesis of Recursive ADT Transformations from Reusable Templates
Author(s)
Qiu, Xiaokang; Lerner, Benjamin S.; Inala, Jeevana Priya; Polikarpova, Nadezhda; Solar Lezama, Armando
DownloadSolar-Lezama_Synthesis of recursive.pdf (578.6Kb)
OPEN_ACCESS_POLICY
Open Access Policy
Creative Commons Attribution-Noncommercial-Share Alike
Terms of use
Metadata
Show full item recordAbstract
Recent work has proposed a promising approach to improving scalability of program synthesis by allowing the user to supply a syntactic template that constrains the space of potential programs. Unfortunately, creating templates often requires nontrivial effort from the user, which impedes the usability of the synthesizer. We present a solution to this problem in the context of recursive transformations on algebraic data-types. Our approach relies on polymorphic synthesis constructs: a small but powerful extension to the language of syntactic templates, which makes it possible to define a program space in a concise and highly reusable manner, while at the same time retains the scalability benefits of conventional templates. This approach enables end-users to reuse predefined templates from a library for a wide variety of problems with little effort. The paper also describes a novel optimization that further improves the performance and the scalability of the system. We evaluated the approach on a set of benchmarks that most notably includes desugaring functions for lambda calculus, which force the synthesizer to discover Church encodings for pairs and boolean operations.
Date issued
2017-03Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory; Massachusetts Institute of Technology. Department of Electrical Engineering and Computer ScienceJournal
Tools and Algorithms for the Construction and Analysis of Systems
Publisher
Springer-Verlag
Citation
Inala, Jeevana Priya et al. “Synthesis of Recursive ADT Transformations from Reusable Templates.” A. Legay and T. Margaria, editors. Tools and Algorithms for the Construction and Analysis of Systems. TACAS 2017. Lecture Notes in Computer Science, 10205 (2017): 247–263 © 2017 Springer-Verlag GmbH Germany
Version: Author's final manuscript
ISBN
978-3-662-54576-8
978-3-662-54577-5
ISSN
0302-9743
1611-3349