This event is online, Please click here to join.
Abstract:
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) How can we effectively search in the space of programs and partially constructed programs?
2) How can we effectively represent programs and partially constructed programs?
In this talk, 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. We present several algorithms for
synthesizing programs from examples, and demonstrate the
benefits of these algorithms. We will also discuss recent work
which explores program synthesis and program representation
using large-scale (100B+ parameter) pre-trained transformer language models.