Cargando…

Program synthesis: challenges and opportunities

Program synthesis is the mechanized construction of software, dubbed ‘self-writing code’. Synthesis tools relieve the programmer from thinking about how the problem is to be solved; instead, the programmer only provides a description of what is to be achieved. Given a specification of what the progr...

Descripción completa

Detalles Bibliográficos
Autores principales: David, Cristina, Kroening, Daniel
Formato: Online Artículo Texto
Lenguaje:English
Publicado: The Royal Society Publishing 2017
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5597726/
https://www.ncbi.nlm.nih.gov/pubmed/28871052
http://dx.doi.org/10.1098/rsta.2015.0403
_version_ 1783263762456772608
author David, Cristina
Kroening, Daniel
author_facet David, Cristina
Kroening, Daniel
author_sort David, Cristina
collection PubMed
description Program synthesis is the mechanized construction of software, dubbed ‘self-writing code’. Synthesis tools relieve the programmer from thinking about how the problem is to be solved; instead, the programmer only provides a description of what is to be achieved. Given a specification of what the program should do, the synthesizer generates an implementation that provably satisfies this specification. From a logical point of view, a program synthesizer is a solver for second-order existential logic. Owing to the expressiveness of second-order logic, program synthesis has an extremely broad range of applications. We survey some of these applications as well as recent trends in the algorithms that solve the program synthesis problem. In particular, we focus on an approach that has raised the profile of program synthesis and ushered in a generation of new synthesis tools, namely counter-example-guided inductive synthesis (CEGIS). We provide a description of the CEGIS architecture, followed by recent algorithmic improvements. We conjecture that the capacity of program synthesis engines will see further step change, in a manner that is transparent to the applications, which will open up an even broader range of use-cases. This article is part of the themed issue ‘Verified trustworthy software systems’.
format Online
Article
Text
id pubmed-5597726
institution National Center for Biotechnology Information
language English
publishDate 2017
publisher The Royal Society Publishing
record_format MEDLINE/PubMed
spelling pubmed-55977262017-09-14 Program synthesis: challenges and opportunities David, Cristina Kroening, Daniel Philos Trans A Math Phys Eng Sci Articles Program synthesis is the mechanized construction of software, dubbed ‘self-writing code’. Synthesis tools relieve the programmer from thinking about how the problem is to be solved; instead, the programmer only provides a description of what is to be achieved. Given a specification of what the program should do, the synthesizer generates an implementation that provably satisfies this specification. From a logical point of view, a program synthesizer is a solver for second-order existential logic. Owing to the expressiveness of second-order logic, program synthesis has an extremely broad range of applications. We survey some of these applications as well as recent trends in the algorithms that solve the program synthesis problem. In particular, we focus on an approach that has raised the profile of program synthesis and ushered in a generation of new synthesis tools, namely counter-example-guided inductive synthesis (CEGIS). We provide a description of the CEGIS architecture, followed by recent algorithmic improvements. We conjecture that the capacity of program synthesis engines will see further step change, in a manner that is transparent to the applications, which will open up an even broader range of use-cases. This article is part of the themed issue ‘Verified trustworthy software systems’. The Royal Society Publishing 2017-10-13 2017-09-04 /pmc/articles/PMC5597726/ /pubmed/28871052 http://dx.doi.org/10.1098/rsta.2015.0403 Text en © 2017 The Authors. http://creativecommons.org/licenses/by/4.0/ Published by the Royal Society under the terms of the Creative Commons Attribution License http://creativecommons.org/licenses/by/4.0/, which permits unrestricted use, provided the original author and source are credited.
spellingShingle Articles
David, Cristina
Kroening, Daniel
Program synthesis: challenges and opportunities
title Program synthesis: challenges and opportunities
title_full Program synthesis: challenges and opportunities
title_fullStr Program synthesis: challenges and opportunities
title_full_unstemmed Program synthesis: challenges and opportunities
title_short Program synthesis: challenges and opportunities
title_sort program synthesis: challenges and opportunities
topic Articles
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5597726/
https://www.ncbi.nlm.nih.gov/pubmed/28871052
http://dx.doi.org/10.1098/rsta.2015.0403
work_keys_str_mv AT davidcristina programsynthesischallengesandopportunities
AT kroeningdaniel programsynthesischallengesandopportunities