The Sketching Approach to Program Synthesis
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.
KeywordsConcurrent Program Partial Program Program Synthesis Inductive Synthesis Test Harness
Unable to display preview. Download preview PDF.
- 1.Herlihy, M., Shavit, N.: The art of multiprocessor programming. Morgan Kaufmann, San Francisco (2008)Google Scholar
- 2.Solar-Lezama, A.: Program Synthesis By Sketching. PhD thesis, EECS Dept., UC Berkeley (2008)Google Scholar
- 4.Solar-Lezama, A., Jones, C., Arnold, G., Bodík, R.: Sketching concurrent datastructures. In: PLDI 2008 (2008)Google Scholar
- 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.Srivastava, S., Gulwani, S., Jeffrey, F.: From program verification to program synthesis. Submitted to POPL (2010)Google Scholar