Rastislav Bodik, University of Washington
How much intelligence does a computer need to reach parity with human programmers? Not that much, it turns out --- it only needs to write a perfect program with up to 50 operations. Automatic program synthesis has recently reached this level of performance on diverse programming tasks, including synthesis of SQL queries, end-user web scripts, and crash consistency models. I will sample these results and describe the methodology and algorithms behind recent synthesizers. I will end with the discussion of opportunities in deploying synthesis in the construction of bigger systems, including complementing machine learning in the vision of Software 2.0.
Joint work with the team of the UW Sandcat project.
Ras Bodik is Professor of Computer Science and Engineering at the University of Washington. Previously, he was Professor at the University of California, Berkeley (2003-2015) and Assistant Professor at the University of Wisconsin, Madison (2000-2003). He is best known for his work on foundations of algorithmic program synthesis and their applications in programmer tools (deep semantic autocomplete), end-user programming (web automation and data visualizations), data analytics (synthesis of SQL queries and parallelization of analytics), compilation (parallelizing web browser layout engines), systems biology (turning wet lab data into models of cells and suggestions of future experiments), and computer architecture (programming accelerators). His group released two influential frameworks for synthesizer construction: Sketch, the first algorithmic synthesizer for imperative programs (developed by Armando Solar-Lezama), and Rosette, a lightweight host language for solver-aided DSLs (developed by Emina Torlak). At UW, he leads the SandCat project that rethinks the system stack, and the Arion project on programming heterogeneous devices. His previous work included static and dynamic program analysis, hardware support for program analysis, and dynamic compilation.