Thibaud Hottelier and Ras Bodik

EECS Department, University of California, Berkeley

Technical Report No. UCB/EECS-2014-139

July 29, 2014

http://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-139.pdf

Synthesis is the problem of obtaining programs from relational specifications. We present grammar-modular (GM) synthesis, an algorithm for synthesis from tree-structured relational specifications. GM synthesis makes synthesis applicable to previously intractable relational specifications by decomposing them into smaller subproblems, which can be tackled in isolation by off-the-shelf synthesis procedures. The program fragments thus generated are subsequently composed to form a program satisfying the overall specification.

We also generalize our technique to tree languages of relational specifications. Here, we synthesize a single program capable satisfying any (tree-shaped) relation belonging to the language; the synthesized program is syntax-directed by the structure of the relation.

We evaluate our work by applying GM synthesis to document layout: given the semantics of a layout language, we synthesize tailored constraint solvers capable of laying out languages of documents. Our experiments show that GM synthesis is sufficiently complete to successfully generate solvers for non-trivial data visualizations, and that our synthesized solvers are between 39- to 200-times faster than general-purpose constraint solvers.


BibTeX citation:

@techreport{Hottelier:EECS-2014-139,
    Author= {Hottelier, Thibaud and Bodik, Ras},
    Title= {Program Synthesis for Hierarchical Specifications},
    Year= {2014},
    Month= {Jul},
    Url= {http://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-139.html},
    Number= {UCB/EECS-2014-139},
    Abstract= {Synthesis is the problem of obtaining programs from relational specifications. We present grammar-modular (GM) synthesis, an algorithm for synthesis from tree-structured relational specifications. GM synthesis makes synthesis applicable to previously intractable relational specifications by decomposing them into smaller subproblems, which can be tackled in isolation by off-the-shelf synthesis procedures. The program fragments thus generated are subsequently composed to form a program satisfying the overall specification.

We also generalize our technique to tree languages of relational specifications. Here, we synthesize a single program capable satisfying any (tree-shaped) relation belonging to the language; the synthesized program is syntax-directed by the structure of the relation. 

We evaluate our work by applying GM synthesis to document layout: given the semantics of a layout language, we synthesize tailored constraint solvers capable of laying out languages of documents. Our experiments show that GM synthesis is sufficiently complete to successfully generate solvers for non-trivial data visualizations, and that our synthesized solvers are between 39- to 200-times faster than general-purpose constraint solvers.},
}

EndNote citation:

%0 Report
%A Hottelier, Thibaud 
%A Bodik, Ras 
%T Program Synthesis for Hierarchical Specifications
%I EECS Department, University of California, Berkeley
%D 2014
%8 July 29
%@ UCB/EECS-2014-139
%U http://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-139.html
%F Hottelier:EECS-2014-139