Program Synthesis from Visual Specification

06/04/2018
by   Evan Hernandez, et al.
0

Program synthesis is the process of automatically translating a specification into computer code. Traditional synthesis settings require a formal, precise specification. Motivated by computer education applications where a student learns to code simple turtle-style drawing programs, we study a novel synthesis setting where only a noisy user-intention drawing is specified. This allows students to sketch their intended output, optionally together with their own incomplete program, to automatically produce a completed program. We formulate this synthesis problem as search in the space of programs, with the score of a state being the Hausdorff distance between the program output and the user drawing. We compare several search algorithms on a corpus consisting of real user drawings and the corresponding programs, and demonstrate that our algorithms can synthesize programs optimally satisfying the specification.

READ FULL TEXT

page 2

page 5

page 8

page 11

research
07/09/2020

Program Synthesis with Pragmatic Communication

Program synthesis techniques construct or infer programs from user-provi...
research
10/04/2020

Optimal Neural Program Synthesis from Multimodal Specifications

Multimodal program synthesis, which leverages different types of user in...
research
07/30/2017

Learning to Infer Graphics Programs from Hand-Drawn Images

We introduce a model that learns to convert simple hand drawings into gr...
research
02/24/2022

Black-Box Algorithm Synthesis – Divide-and-Conquer and More

Algorithm synthesis is a newly emerging branch of program synthesis, tar...
research
06/05/2022

Geometric Theory for Program Testing

Formal methods for verification of programs are extended to testing of p...
research
05/25/2021

Comparative Synthesis: Learning Optimal Programs with Indeterminate Objectives

Quantitative program synthesis aims to generate a program that satisfies...
research
09/08/2022

Template-based Program Synthesis using Stellensätze

Template-based synthesis, also known as sketching, is a localized approa...

Please sign up or login with your details

Forgot password? Click here to reset