Program sketching
Author(s)
Solar Lezama, Armando
Download10009_2012_Article_249.pdf (1.037Mb)
OPEN_ACCESS_POLICY
Open Access Policy
Creative Commons Attribution-Noncommercial-Share Alike
Terms of use
Metadata
Show full item recordAbstract
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.
Date issued
2012-08Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer ScienceJournal
International Journal on Software Tools for Technology Transfer
Publisher
Springer Berlin Heidelberg
Citation
Solar-Lezama, Armando. “Program Sketching.” International Journal on Software Tools for Technology Transfer 15.5–6 (2013): 475–495.
Version: Author's final manuscript
ISSN
1433-2779
1433-2787