S3: Syntax- and Semantic-guided Repair Synthesis via Programming by Examples

Created by W.Langdon from gp-bibliography.bib Revision:1.3989

  author =       "Xuan-Bach D. Le and Duc-Hiep Chu and David Lo and 
                 Claire {Le Goues} and Willem Visser",
  title =        "{S3}: Syntax- and Semantic-guided Repair Synthesis via
                 Programming by Examples",
  booktitle =    "Proceedings of the 2017 11th Joint Meeting on
                 Foundations of Software Engineering, ESEC/FSE 2017",
  year =         "2017",
  editor =       "Eric Bodden and Wilhelm Schaefer",
  pages =        "593--604",
  address =      "Paderborn, Germany",
  month =        "408 " # sep,
  publisher =    "ACM",
  keywords =     "genetic algorithms, genetic programming, genetic
                 improvement, Inductive Synthesis, Program Repair,
                 Programming by Examples, Symbolic Execution",
  isbn13 =       "978-1-4503-5105-8",
  acmid =        "3106309",
  URL =          "https://www.cs.cmu.edu/~clegoues/docs/legoues-esecfse17.pdf",
  URL =          "http://doi.acm.org/10.1145/3106237.3106309",
  DOI =          "doi:10.1145/3106237.3106309",
  abstract =     "A notable class of techniques for automatic program
                 repair is known as semantics-based. Such techniques,
                 e.g., Angelix, infer semantic specifications via
                 symbolic execution, and then use program synthesis to
                 construct new code that satisfies those inferred
                 specifications. However, the obtained specifications
                 are naturally incomplete, leaving the synthesis engine
                 with a difficult task of synthesizing a general
                 solution from a sparse space of many possible solutions
                 that are consistent with the provided specifications
                 but that do not necessarily generalize. We present S3,
                 a new repair synthesis engine that leverages
                 programming-by-examples methodology to synthesize
                 high-quality bug repairs. The novelty in S3 that allows
                 it to tackle the sparse search space to create more
                 general repairs is three-fold: (1) A systematic way to
                 customize and constrain the syntactic search space via
                 a domain-specific language, (2) An efficient
                 enumeration- based search strategy over the constrained
                 search space, and (3) A number of ranking features
                 based on measures of the syntactic and semantic
                 distances between candidate solutions and the original
                 buggy program. We compare S3 repair effectiveness with
                 state-of-the-art synthesis engines Angelix,
                 Enumerative, and CVC4. S3 can successfully and
                 correctly fix at least three times more bugs than the
                 best baseline on datasets of 52 bugs in small programs,
                 and 100 bugs in real-world large programs.",
  notes =        "Is this GP? SYNTH-LIB intro class benchmark
                 \cite{durieux:hal-01272126} Port of Angelix to

                 http://esec-fse17.uni-paderborn.de/ Also known as

Genetic Programming entries for Xuan-Bach Dinh Le Duc-Hiep Chu David Lo Claire Le Goues Willem Visser