@article{le2017interactive, author = {Le, Vu and Perelman, Daniel and Polozov, Alex and Raza, Mohammad and Udupa, Abhishek and Gulwani, Sumit}, title = {Interactive Program Synthesis}, year = {2017}, month = {March}, abstract = {Program synthesis from incomplete specifications (e.g. input-output examples) has gained popularity and found real-world applications, primarily due to its ease-of-use. Since this technology is often used in an interactive setting, efficiency and correctness are often the key user expectations from a system based on such technologies. Ensuring efficiency is challenging since the highly combinatorial nature of program synthesis algorithms does not fit in a 1-2 second response expectation of a user-facing system. Meeting correctness expectations is also difficult, given that the specifications provided are incomplete, and that the users of such systems are typically non-programmers. In this paper, we describe how interactivity can be leveraged to develop efficient synthesis algorithms, as well as to decrease the cognitive burden that a user endures trying to ensure that the system produces the desired program. We build a formal model of user interaction along three dimensions: incremental algorithm, step-based problem formulation, and feedback-based intent refinement. We then illustrate the effectiveness of each of these forms of interactivity with respect to synthesis performance and correctness on a set of real-world case studies.}, url = {http://approjects.co.za/?big=en-us/research/publication/interactive-program-synthesis/}, journal = {arXiv preprint}, volume = {arXiv:1703.03539}, }