From program verification to program synthesis 论文

2010引用 268
Formal Methods in VerificationLogic, programming, and type systemsSoftware Testing and Debugging Techniques

详细信息

发表日期
2010-01-17
发表年份
2010

关键词

Formal Methods in VerificationLogic, programming, and type systemsSoftware Testing and Debugging Techniques

摘要

This paper describes a novel technique for the synthesis of imperative programs. Automated program synthesis has the potential to make programming and the design of systems easier by allowing programs to be specified at a higher-level than executable code. In our approach, which we call proof-theoretic synthesis, the user provides an input-output functional specification, a description of the atomic operations in the programming language, and a specification of the synthesized program’s looping structure, allowed stack space, and bound on usage of certain operations. Our technique synthesizes a program, if there exists one, that meets the inputoutput specification and uses only the given resources. The insight behind our approach is to interpret program synthesis as generalized program verification, which allows us to bring verification tools and techniques to program synthesis. Our synthesis