Automated Program Repair through the Evolution of Assembly Code

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

  author =       "Eric Schulte and Stephanie Forrest and 
                 Westley Weimer",
  title =        "Automated Program Repair through the Evolution of
                 Assembly Code",
  booktitle =    "Proceedings of the IEEE/ACM International Conference
                 on Automated Software Engineering",
  year =         "2010",
  pages =        "313--316",
  address =      "Antwerp",
  month =        "20-24 " # sep,
  publisher =    "ACM",
  keywords =     "genetic algorithms, genetic programming, SBSE,
                 assembly code, bytecode, evolutionary computation,
                 fault localisation, legacy software, program repair",
  isbn13 =       "978-1-4503-0116-9",
  URL =          "",
  DOI =          "doi:10.1145/1858996.1859059",
  acmid =        "1859059",
  size =         "4 pages",
  abstract =     "A method is described for automatically repairing
                 legacy software at the assembly code level using
                 evolutionary computation. The technique is demonstrated
                 on Java byte code and x86 assembly programs, showing
                 how to find program variations that correct defects
                 while retaining desired behaviour. Test cases are used
                 to demonstrate the defect and define required
                 functionality. The paper explores advantages of
                 assembly-level repair over earlier work at the source
                 code level; the ability to repair programs written in
                 many different languages; and the ability to repair
                 bugs that were previously intractable. The paper
                 reports experimental results showing reasonable
                 performance of assembly language repair even on
                 non-trivial programs.",
  notes =        "Like hummie winner \cite{DBLP:conf/gecco/ForrestNWG09}
                 but working on assembler code and binary levels.
                 Suggested by Steff Forrest. No formal Spec, instead
                 uses only test case. Does not invent new code but moves
                 existing code about. Again a proportion of programs
                 cannot be run (eg fail to assemble or link) and are
                 given fitness zero. Some loop forever and are timed out
                 after 8 seconds. Only 5+ and one negative test case.
                 Population size = 40. Uses virtual machine to provide
                 safety against errors, eg stack smashing. Linux. 7 Unix
                 utilities (written in in C but compiled to assembler)
                 On average 63percent of GP runs fixed error.

                 Cites \cite{10.1109/ASE.2009.15},
                 \cite{kuhling:2002:EuroGP} and Daikon's ClearView


                 ASE 2010",

Genetic Programming entries for Eric Schulte Stephanie Forrest Westley Weimer