Dimensions in Program Synthesis

January 25, 2010

Sumit Gulwani


Dimensions in Program Synthesis

Time:   9:15am
Location:   Amphitheatre H-1002

In this talk, I will briefly describe some recent program synthesis projects that are motivated by various reasons: enabling people with no programming background to develop utility programs, helping regular programmers automatically discover tricky/mundane details, and even discovery of new algorithms. These projects target synthesis of a variety of programs such as standard undergraduate textbook algorithms (e.g., sorting, dynamic programming), program inverses (e.g., decoders, deserializers), bit-vector manipulation routines, deobfuscators, graph algorithms, data transformers, algebraic algorithms, and mutual exclusion algorithms. Our tools today scale to synthesis of about 25 lines of code within an hour.

These projects cover various design points along three dimensions in program synthesis: functional specification, search space, and search technique.