CS Peer Talks

Introduction to Program Synthesis

  • Ruyi Ji, Sirui Lu, Turing Class (Class of 2016)
  • Time: 2020-04-22 16:00
  • Host: PKU Turing Class Research Committee
  • Venue: Online Talk


Automatic synthesis of programs has long been one of the most fascinating problems of software engineering and programming languages. After decades of research and development, many synthesis approaches have been applied to practical tasks, such as string manipulation, data wrangling and program optimization. In this talk, we will give a brief introduction to program synthesis, including its popular applications and several popular research works on building efficient synthesis approches. We will introduce some off-the-shelf program synthesis frameworks. In particular, we will give a tutorial on Rosette, which is an extension of Racket with synthesis and verification support. In the tutorial, we will demonstrate how to implement a simple domain specific language (DSL) in Rosette and synthesis a program in it.