Program sketching

被引:154
作者
Solar-Lezama A. [1 ]
机构
[1] Massachussets Institute of Technology, Cambridge
关键词
Constraint-based synthesis; SAT/SMT applications; Sketching; Synthesis;
D O I
10.1007/s10009-012-0249-7
中图分类号
学科分类号
摘要
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. © 2012 Springer-Verlag.
引用
收藏
页码:475 / 495
页数:20
相关论文
共 23 条
[1]  
Amit D., Rinetzky N., Sagiv M., Yahav E., Comparison under abstraction for verifying linearizability, In 19th International Conference On Computer Aided Verification (CAV), (2007)
[2]  
Anderson S.E., Bit Twiddling Hacks (1997-2005)
[3]  
Angluin D., Smith C.H., Inductive inference: Theory and methods, ACM Comput. Surv, 15, 3, pp. 237-269, (1983)
[4]  
Biere A., Resolve and expand, Proceedings of the 7th International Conference On Theory and Applications of Satisfiability Testing, SAT'04, pp. 59-70, (2005)
[5]  
Clarke E., Grumberg O., Jha S., Lu Y., Veith H., Counterexample-guided abstraction refinement for symbolic model checking, J. ACM, 50, 5, pp. 752-794, (2003)
[6]  
Clarke E., Kroening D., Yorav K., Behavioral consistency of c and verilog programs using bounded model checking, Proceedings of the 40th Annual Design Automation Conference, DAC'03, pp. 368-371, (2003)
[7]  
Advanced Encryption Standard (AES), (2001)
[8]  
Gold E.M., Language identification in the limit, Inf. Control, 10, 5, pp. 447-474, (1967)
[9]  
Jha S., Gulwani S., Seshia S.A., Tiwari A., Oracle-guided component-based program synthesis, Proceedings of the 32nd ACM/IEEE International Conference On Software Engineering, ICSE'10, 1, pp. 215-224, (2010)
[10]  
McMillan K.L., Symbolic Model Checking, (1993)