Test-Driven Synthesis


Programming-by-example technologies empower end-users to create simple programs merely by providing input/output examples. Existing systems are designed around solvers specialized for a specific set of data types or domain-specific language (DSL). In this project we are developing a synthesizer that can work well on an arbitrary DSL. In order to do so, we have taken inspiration from Test-Driven Development (TDD) and created a synthesizer that considers a list of examples one at time, constructing a program that works for each prefix of the examples until all of the examples are satisfied, similar to the process suggested by some proponents of TDD.