Search and Representation in Program Synthesis
Author(s)
Nye, Maxwell
DownloadThesis PDF (8.597Mb)
Advisor
Tenenbaum, Joshua B.
Solar-Lezama, Armando
Terms of use
Metadata
Show full item recordAbstract
Building systems that can synthesize programs from natural specifications (such as examples or language) is a longstanding goal of AI. Building such systems would allow us to achieve both scientific and practical goals. From a scientific perspective, program synthesis may provide a way to learn compact, generalizable rules from a small number of examples, something machine learning still struggles with, but humans find easy. From a practical perspective, program synthesis systems can assist with real-world programming tasks, from novice end-user tasks (such as string editing or repetitive task automation) to expert functions such as software engineering.
In this work, we explore how to build such systems. We focus on two main interrelated questions: 1) When solving synthesis problems, how can we effectively search in the space of programs and partially constructed programs? 2) When solving synthesis problems, how can we effectively represent programs and partially constructed programs?
In the following chapters, we will explore these questions. Our work has centered around the syntax and the semantics of programs, and how syntax and semantics can be used as tools to assist both the search and representation of programs and partial programs. We present several algorithms for synthesizing programs from examples, and demonstrate the benefits of these algorithms over previous approaches.
Date issued
2022-02Department
Massachusetts Institute of Technology. Department of Brain and Cognitive SciencesPublisher
Massachusetts Institute of Technology