Final Report Summary - IMPRO (Implicit Programming)
synthesis, an emerging field of developing software that
writes itself. Synthesis aims to automatically construct
software from high-level descriptions. Results of the
project include synthesis from a wide range of descriptions:
predicates, examples, numerical constraints and precision,
probabilistic models derived from software repositories,
declarative reference implementations, natural language, and
demonstration of the intended functionality. In addition to
synthesis within development environments, the project has
identified program repair as a promising mode for deployment
of synthesis. To enable these results, the project developed
program verification and analysis techniques, including
analysis through recursive logical representations,
inductive theorem proving, test generation, and static
analysis of program execution time bounds.