Viktor Kuncak, Mikaël Mayer, Ruzica Piskac, and Philippe Suter.
Software synthesis procedures.
Communications of the ACM, 2012.
Automated synthesis of program fragments from specifications
can make programs easier to write and easier to reason about. To integrate
synthesis into programming languages software synthesis algorithms should
behave in a predictable way: they should succeed for a well-defined class of
specifications. We propose to systematically generalize decision procedures
into synthesis procedures, and use them to compile implicitly specified
computations embedded inside functional and imperative programs. Synthesis
procedures are predictable, because they are guaranteed to find code that
satisfies the specification whenever such code exists. To illustrate our
method, we derive synthesis procedures by extending quantifier elimination
algorithms for integer arithmetic and set data structures. We then show that
an implementation of such synthesis procedures can extend a compiler to
support implicit value definitions and advanced pattern matching.
[ bib ]
Back