The Sketching Approach to Program Synthesis

  • Armando Solar-Lezama
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5904)


Sketching is a new form of localized software synthesis 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 partial programs to describe the desired implementation strategy, and leaves the low-level details of the implementation to an automated synthesis procedure. This paper describes the sketching approach to program synthesis, including the details of the Sketch language and synthesizer. The paper will then describe some of the techniques that make synthesis from sketches possible, and will close with a brief discussion of open problems in programmer guided synthesis.


Concurrent Program Partial Program Program Synthesis Inductive Synthesis Test Harness 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Herlihy, M., Shavit, N.: The art of multiprocessor programming. Morgan Kaufmann, San Francisco (2008)Google Scholar
  2. 2.
    Solar-Lezama, A.: Program Synthesis By Sketching. PhD thesis, EECS Dept., UC Berkeley (2008)Google Scholar
  3. 3.
    Solar-Lezama, A., Arnold, G., Tancau, L., Bodik, R., Saraswat, V., Seshia, S.: Sketching stencils. In: PLDI 2007: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, vol. 42, pp. 167–178. ACM, New York (2007)CrossRefGoogle Scholar
  4. 4.
    Solar-Lezama, A., Jones, C., Arnold, G., Bodík, R.: Sketching concurrent datastructures. In: PLDI 2008 (2008)Google Scholar
  5. 5.
    Solar-Lezama, A., Tancau, L., Bodik, R., Saraswat, V., Seshia, S.: Combinatorial sketching for finite programs. In: ASPLOS 2006, San Jose, CA, USA. ACM Press, New York (2006)Google Scholar
  6. 6.
    Srivastava, S., Gulwani, S., Jeffrey, F.: From program verification to program synthesis. Submitted to POPL (2010)Google Scholar
  7. 7.
    Vechev, M., Yahav, E.: Deriving linearizable fine-grained concurrent objects. SIGPLAN Not. 43(6), 125–135 (2008)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Armando Solar-Lezama
    • 1
  1. 1.Massachusetts Institute of Technology 

Personalised recommendations