
Software synthesis is a technique for automaticallygenerating code from a given specification. The goal of softwaresynthesis is to make software development easier while increasingboth the productivity of the programmer and the correctnessof the produced code. In this paper we present an approachto synthesis that relies on the use of automated reasoning anddecision procedures. First we describe how to generalize decisionprocedures into predictable and complete synthesis procedures.Here completeness means that the procedure is guaranteed tofind code that satisfies the given specification. We illustrate theprocess of turning a decision procedure into a synthesis procedureusing linear integer arithmetic as an example.However, writing a complete specification can be a tedious task,sometimes even harder than writing the code itself. To overcomethis problem, ideally the user could provide a few input-outputexamples, and then the code should be automatically derived.We outline how to broaden usability and applications of currentsoftware synthesis techniques. We conclude with an outlook onpossible future research directions and applications of synthesisprocedures.
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
