Program synthesis searches from a high level specification to find a program that matches a user’s intent. Interactive program synthesis considers the human an essential part of that search process. Providing interactions comes in largely two forms: there are interactions that serve to get information into the system and those that get information out from the synthesizer. In some synthesizers, that output information also works to solicit new information which in turn refines the search, making for an interaction loop with the synthesizer. In this work, I classify interactions to gather information into, out of, and form loops of synthesis systems while fitting my ongoing work into this research landscape. I look at this interaction loop in the context of interaction theory. I conclude by highlighting open questions and areas for improvement in search interactions.
While the exam is over, you can see the slides here.