Program Synthesis with Symbolic Properties

Program synthesis is the task of automatically writing computer programs given a specification for their behavior. Program synthesis is challenging due to the combinatorial nature of the search space. In the short term, improving program synthesis could make people vastly more productive, by transfo...

Full description

Bibliographic Details
Main Author: Sechopoulos, Theodoros
Other Authors: Tenenbaum, Joshua B.
Format: Thesis
Published: Massachusetts Institute of Technology 2022
Online Access:https://hdl.handle.net/1721.1/143172
Description
Summary:Program synthesis is the task of automatically writing computer programs given a specification for their behavior. Program synthesis is challenging due to the combinatorial nature of the search space. In the short term, improving program synthesis could make people vastly more productive, by transforming how they communicate with computers. In the long term, improving program synthesis could bring us a step closer to understanding human intelligence and to building machines with human-like intelligence. In this work we discuss how symbolic properties (which are themselves programs) can help program synthesis performance. Specifically, building on the formulation of properties in Odena and Sutton (2020) we present PropsimFit, a novel online synthesis algorithm that uses properties for program search and show that it outperforms naive non-property baselines in the Rule (2020) list function dataset. Finally, we discuss future ways to use properties for synthesis based on the insights gained from PropsimFit and its limitations.