Description
Program Synthesis differs from other domains in machine learning due to the unforgiving nature of the task of writing programs. Since programs are precise sets of instructions, there is a much higher bar before which the results of a program synthesis system are useful. This thesis explores search based techniques that use auxiliary information in order to best improve the performance of systems that solve the task of program synthesis, in both semantic parsing and induction from examples domains.