Learning to Write Code, Automatically
, Rice University
Date: Monday, May 01, 2017
Time: 11:00 AM to 12:00 PM
Refreshments: 10:45 AM
Host: Professor Armando Solar-Lezama, CSG - CSAIL - MIT
Contact: Sally O. Lee, 3-6837, email@example.com
Speaker URL: None
TALK: Learning to Write Code, Automatically
Programming is hard. Even though programmers have an idea of what they
would like their program to do, articulating it in precise logical
semantics is difficult. Often times, the programmer is uncertain about
these precise semantics, but can provide "evidences" towards it. An
Android developer, for instance, may not exactly know how to connect to
a bluetooth socket, but may know that it involves the BluetoothSocket
type. Can we synthesize programs from such uncertain specifications?
In this talk, I will present a data-driven approach to the problem of
inductive computer program synthesis, that has the ability to handle
this uncertainty. Our method learns a probabilistic model for real-world
programs from a corpus of existing code. It uses this model during
synthesis to automatically infer a posterior distribution over sketches,
or syntactic models of the problem to be synthesized. Sketches sampled
from this posterior are then used to drive combinatorial synthesis of a
program in a high-level programming language such as Java.
The key technical innovation of our approach -- embodied in a system
called Bayou -- is utilizing user-supplied evidence as to the program's
desired behavior, along with a Bayesian update, to obtain a posterior
distribution over the program's true latent specification (indicating
user intent), which in turn produces a posterior over possible sketches.
We find that using evidences such as a few example API calls, types or
even natural language to communicate user intent, Bayou can synthesize
complex method bodies, some implementing tasks never encountered during
Created by Sally O. Lee at Wednesday, April 26, 2017 at 2:54 PM.