Mikail Khan
January 19, 2024

Programming By Example is a synthesis paradigm that generates a program from a set of input-output examples. To do so, synthesizers usually phrase the problem as a search over the program space. To constrain this massive search space, PBE engines often use a restricted DSL or incomplete heuristics.

While PBE has found use by non-technical users in popular software such as Microsoft Excel and Google Sheets, these limitations have prevented its use by programmers. Recent work aims to make PBE viable as a programmer’s assistant by integrating it into a development environment for interactive use, using techniques such as live programming and projection boxes.

This project explores interactive PBE by visualizing a data-structure called a VSA that represents the search space. Using this visualization, users can incrementally run a synthesis algorithm, acting as a heuristic and discovering programs that would be infeasible to generate by the synthesizer alone.

About Mikail Khan

Mikail is a senior undergraduate majoring in Computer Science