Large 000001000

Program Synthesis: New Strides in an Old Problem

Swarat Chaudhuri

Recorded 26 October 2017 in Lausanne, Vaud, Switzerland

Event: IC Colloquia - EPFL IC School Colloquia


Program synthesis, the problem of automatically discovering solutions to programming tasks, is a long-standing goal in computer science. The problem is known to be extremely hard, primarily because it requires search through vast, combinatorial spaces of programs. Nevertheless, the last decade has seen a resurgence of interest in this area. New algorithmic techniques, new applications, diligent engineering, and the availability of powerful hardware have contributed to raising hopes for practical program synthesis.

In this talk, I will discuss some of the algorithmic insights that we have identified while working on program synthesis over the last eight years. Specifically, I will show that functional language abstractions and the use of automated deduction can be key to scaling program synthesis. I will demonstrate that data-driven methods – in particular, statistical learning over large corpora of code – can speed up searches for programs and enable synthesis from highly ambiguous specifications of programming tasks. Finally, I will discuss a quantitative extension of program synthesis and show that continuous optimization methods and learning from data can be useful in solving this problem.

Watched 655 times.