Program sketching

By Armando Solar-Lezama. 2012

269 citations recorded by the source corpus.

Sketching is a synthesis methodology that aims to bridge the gap between a programmer’s high-level insights about a problem and the computer’s ability to manage low-level details. In sketching, the programmer uses a partial program, a sketch, to describe the desired implementation strategy, and leaves the low-level details of the implementation to an automated synthesis procedure. In order to generate an implementation from the programmer provided sketch, the synthesizer uses counterexample-guided inductive synthesis (CEGIS). Inductive synthesis refers to the process of generating candidate implementations from concrete examples of correct or incorrect behavior. CEGIS combines a SAT-based inductive synthesizer with an automated validation procedure, a bounded model-checker, that checks whether the candidate implementation produced by inductive synthesis is indeed correct and to produce new counterexamples. The result is a synthesis procedure that is able to handle complex problems from a variety of domains including ciphers, scientific programs, and even concurrent data-structures.

Subfields: Computational Theory and Mathematics, Hardware and Architecture

How researchers see this paper

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

In Computational Theory and Mathematics

  1. Angelika Kimmig
  2. Luc De Raedt
  3. Thomas Demeester
  4. Pavol Bielik
  5. Martin T. Vechev
  6. Veselin Raychev
  7. Sebastijan Dumancic
  8. Robin Manhaeve

In Hardware and Architecture

  1. Thomas Demeester
  2. Pavol Bielik
  3. Martin T. Vechev
  4. Luc De Raedt
  5. Veselin Raychev
  6. Angelika Kimmig
  7. Sebastijan Dumancic
  8. Robin Manhaeve

Citations in the corpus