Would it be useful for creating a DSL for example?
Would it be useful for creating a DSL for example?
A lot of the recent work here takes advantage of SMT solvers (next generation of SAT solvers), but that's not necessary. As with Viv and Flash Fill, a lot of it is about changing the concept of what it means to write a program, and use alternative approaches to "complete" it. As another example, generating 0-day bug fixes based on how code "should" look, or recommending typed completions to gaps in code.
For my past work in that group, I looked at "sketching" efficient schedules for parallel code, where I only specified the bits I cared about. Nowadays, I think about automatically generating queries for visual analytics.
http://research.microsoft.com/en-us/um/people/sumitg/flashfi...