University of Cambridge > Talks.cam > Microsoft Research Cambridge, public talks > Generating Code by Learning

Generating Code by Learning

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Microsoft Research Cambridge Talks Admins.

This event may be recorded and made available internally or externally via http://research.microsoft.com. Microsoft will own the copyright of any recordings made. If you do not wish to have your image/voice recorded please consider this before attending

Automated programming is a long-term dream in computer science. Although we know that a fully automated solution is impossible, partial realization of this dream can still have practical impacts. In this talk, I will focus on two practical issues, namely, specifying software and debugging software, and present techniques which automatically generate specifications and bug fixes.

Specifications are essential to reason about software correctness. Unfortunately, most software contains no specification or only very partial specifications, but many of them come with some test cases. Those test cases can be generalized into specifications via dynamic invariant inference. I will demonstrate how to infer specifications in forms of universal quantifications and implications which are necessary to express important aspects of program behaviors, such as frame conditions. I will also show the use of the inferred specifications to detect more faults in the software.

In program debugging, finding the faults is only the first step; what about correcting them? I will demonstrate a technique which uses dynamically inferred invariants to find possible reasons of a failure and generates fixes to correct the fault. I will also show cases where the fixing algorithm has great difficulty in providing useful suggestions; and I would argue that by learning from existing code, a synthesizer, such as the fixing algorithm, can collect hints about the desirable code. I will then present some recent and ongoing work relying on this learning idea to synthesize code.

This talk is part of the Microsoft Research Cambridge, public talks series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2019 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity