CS294: Program Synthesis for Everyone
people.eecs.berkeley.edu
people.eecs.berkeley.edu
> This has screencasts or at least slides for most lectures. I have just started going through it myself and plan to "audit" all the lectures and do the homework assignments. Anyone have an interest in this and would like a virtual study buddy?
It's also worth pointing out that this excellent RacketCon talk [1] made me go seek out more about Excel Flash Fill [2] and in seeking to understand how that works I stumbled upon this course.
[1]: https://www.youtube.com/watch?v=nOyIKCszNeI&list=PLXr4KViVC0...
[2]: http://research.microsoft.com/en-us/um/people/sumitg/flashfi...
Sumit Gulwani - Data Manipulation using Programming By Examples and Natural Language
There's definitely a lot of useful information there, but I'm not sure how well it's organized because the course website wasn't designed to stand on its own.
Would it be useful for creating a DSL for example?
http://research.microsoft.com/en-us/um/people/sumitg/flashfi...
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.
Just curious, are the products of all programs formula? Worded differently, are the products of all functions formula?