2013 · 185 citations · 18 references
ComputingComputer ScienceKnowledge RepresentationProgramming LanguagesSoftware EngineeringConstraint RepresentationConstraint SatisfactionConstraint SolvingLogic SynthesisPredicate LogicSymbolic ExecutionAutomated Program RepairAutomated Program SynthesisBug LocalizationConstraint TransformationProgram LevelProgram RepairProgram SynthesisTheory Solvers
SAT and SMT solvers have automated a spectrum of programming tasks, including program synthesis, code checking, bug localization, program repair, and programming with oracles. In principle, we obtain all these benefits by translating the program (once) to a constraint system understood by the solver. In practice, however, compiling a language to logical formulas is a tricky process, complicated by having to map the solution back to the program level and extend the language with new solver-aided constructs, such as symbolic holes used in synthesis.
18
Combinatorial sketching for finite programs
Armando Solar-Lezama, Liviu Tancau, Rastislav Bodík et al. · 2006 · 642 citations
Synthesis of loop-free programs
Sumit Gulwani, Susmit Jha, Ashish Tiwari et al. · ACM SIGPLAN Notices · 2011 · 242 citations
Synthesis of loop-free programs
Sumit Gulwani, Susmit Jha, Ashish Tiwari et al. · 2011 · 198 citations
Automatic program repair with evolutionary computation
Westley Weimer, Stephanie Forrest, Claire Le Goues et al. · Communications of the ACM · 2010 · 179 citations
Satish Chandra, Emina Torlak, Shaon Barman et al. · 2011 · 132 citations