From MapReduce to Scipy, domain specific languages are democratizing parallel computing. Their success stems from high-level abstractions that empower developers and guide optimizing compilers. Meanwhile, another revolution in language is gaining steam: program synthesis. Essentially, hardware speed is improving at such a fast rate that we can design smart language features powered by search (e.g., SAT solving) that, on older hardware, would have been unacceptably slow to compile. These two ideas, tiny parallel DSLs and program synthesis, enabled us to build several new kinds of languages. We will describe using them for our most recent one, Superconductor.
By combining these ideas into Superconductor, we can now script real-time interactive visualizations of hundreds of thousands of data points and control parallelization at a wonderfully high level. For a sneak peek, check out https://www.youtube.com/watch?v=AoOaGQLjcgc and http://www.sc-lang.com .
Leo Meyerovich UC Berkeley @lmeyerov