Interactively Exploring Code Using Query-by-Example
Despite the widespread adoption of IDEs and sophisticated developer tools, programmers still lack the ability to conveniently explore and understand their code. Existing systems either provide inflexible interfaces or require knowledge of complex query languages and compiler internals.
In this talk, I will describe how we are using query-by-example techniques to help programmers rapidly navigate and discover patterns in their codebase. Our approach is grounded in relational program representations—describing the codebase using tables and querying them using database query languages—and leverages powerful new ways of capturing user intent, incorporated into active learning loops that minimize the need for human feedback.
I will describe our vision for these user interfaces, and the algorithmic advances necessary to enable scalable, interactive query synthesis. Much of this project is still work-in-progress: I will therefore also describe the major outstanding challenges, from algorithms and user interaction models to the underlying system that bridges the gap between the compiler and the IDE.
Bio: Mukund Raghothaman is an assistant professor at the University of Southern California. His research focuses on the use of probabilistic reasoning and human-in-the-loop methods for program synthesis and verification.