Synthesis of loop-free programs

By Sumit Gulwani, Susmit Jha, Ashish Tiwari, Ramarathnam Venkatesan. ACM-SIGPLAN Symposium on Programming Language Design and Implementation, 2011

367 citations recorded by the source corpus.

We consider the problem of synthesizing loop-free programs that implement a desired functionality using components from a given library. Specifications of the desired functionality and the library components are provided as logical relations between their respective input and output variables. The library components can be used at most once, and hence the library is required to contain a reasonable overapproximation of the multiset of the components required. We solve the above component-based synthesis problem using a constraint-based approach that involves first generating a synthesis constraint, and then solving the constraint. The synthesis constraint is a first-order ∃∀ logic formula whose size is quadratic in the number of components. We present a novel algorithm for solving such constraints. Our algorithm is based on counterexample guided iterative synthesis paradigm and uses off-the-shelf SMT solvers. We present experimental results that show that our tool Brahma can efficiently synthesize highly nontrivial 10-20 line loop-free bitvector programs. These programs represent a state space of approximately 2010 programs, and are beyond the reach of the other tools based on sketching and superoptimization.

Subfields: Artificial Intelligence, Computational Theory and Mathematics, Software

View Paper: https://www.semanticscholar.org/paper/ea93cf600859aa09b0b7b727c12f36543608e1cd

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Artificial Intelligence

  1. Rishabh Singh
  2. Percy Liang
  3. Josh Tenenbaum
  4. Swarat Chaudhuri
  5. Sergey Levine
  6. Oleksandr Polozov
  7. Pushmeet Kohli
  8. Armando Solar-Lezama

In Computational Theory and Mathematics

  1. Armando Solar-Lezama
  2. Rishabh Singh
  3. Sumit Gulwani
  4. Oleksandr Polozov
  5. Martin T. Vechev
  6. Veselin Raychev
  7. Kevin Ellis
  8. Sanjit A. Seshia

In Software

  1. Rishabh Singh
  2. Sumit Gulwani
  3. Oleksandr Polozov
  4. Pushmeet Kohli
  5. Armando Solar-Lezama
  6. Charles Sutton
  7. Swarat Chaudhuri
  8. Miltiadis Allamanis

Citations in the corpus