Program Synthesis from Visual Specification