top | item 8028620

Program Synthesis Demo

126 points| Houshalter | 11 years ago |research.microsoft.com

19 comments

order
[+] krilnon|11 years ago|reply
The demo is neat, although the flashy, impressive part (NL->program) predates this particular piece of work. For example, Greg Little's "sloppy programming" is from 2008-ish: http://groups.csail.mit.edu/uid/projects/keyword-commands/in...

Le and Gulwani's paper does cite Little, but the refutation is a bit weak.

> Little and Miller propose a code completion tool that synthesizes the most likely Java expression in a code context from a set of keywords [23]. Smart-Synth is different, in that it synthesizes a complete script and does not require extra contextual information.

From the video, a "complete script" appears to be 1 or 2 simple expressions. And not requiring contextual information sounds like it can't take advantage of contextual information.

[+] chton|11 years ago|reply
I expect this will lead to a whole new category of bugs: "I wasn't precise enough in saying what I wanted, so now the code doesn't do what it should."

Interesting technology, but I doubt it will ever replace or even be used in a proper piece of code.

[+] jameshart|11 years ago|reply
"I wasn't precise enough in saying what I wanted, so now the code doesn't do what it should." is not, in any sense, a new category of bugs.
[+] tree_of_item|11 years ago|reply
You put in a query and get out some code. Concrete code not connected to the query anymore. The code doesn't shift out from under you later, if that's what you're implying.

Why wouldn't it be used in a "proper piece of code"? You ask Visual Studio/XCode/Eclipse for something and it gives you back a snippet that you can use as a starting point.

[+] webwarrior|11 years ago|reply
But it would be a good alternative to bash one-liners.
[+] isbadawi|11 years ago|reply
Pretty neat. I noticed something a bit off about the "tint a random photo blue" example around 2:22. Two of the three search results are fine, but the second search result is

    pics := media -> pictures
    pic := pics -> random
    pic -> tint (colors -> sepia)
    c := colors -> blue
All the components are there but not in the right order -- it still tints with the default color.
[+] Leszek|11 years ago|reply
Isn't that the point though? That the search results show different possible interpretations of the text entry, and this is one of the possible ones?
[+] agumonkey|11 years ago|reply
The animated (translation) transitions seems everything but ergonomic to me.

For instance, static touch controls grid are pretty efficient, see:

http://www.malacria.fr/pdf/gutwin14-fasttap.pdf http://www.malacria.fr/video/fasttap-video.mp4

[+] Uncompetative|11 years ago|reply
Interesting research. Of course, you could always hack the Home button to act as a Command key and hold the device in landscape orientation without having to give up a piece of the screen.
[+] frik|11 years ago|reply
This system could be used together with speech recognition (Siri, Cortana, etc. personal agent) to automate tasks and write little apps on a mobile device.
[+] robgibbons|11 years ago|reply
Very interesting demo. It reminds me of Microsoft Australia's work with on(X)... but this is closer to code completion on steroids.
[+] covi|11 years ago|reply
I have attended one of Sumit's guest lectures, and his work on Flash Fill is pretty cool.
[+] beemoe|11 years ago|reply
So this is what we were all working on at ICFP last year :)