Automated program repair through the evolution of assembly code

Eric Schulte, Stephanie Forrest, Westley Weimer

Research output: Chapter in Book/Report/Conference proceedingConference contribution

50 Scopus citations

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 behavior. 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.

Original languageEnglish (US)
Title of host publicationASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering
Pages313-316
Number of pages4
DOIs
StatePublished - 2010
Externally publishedYes
Event25th IEEE/ACM International Conference on Automated Software Engineering, ASE'10 - Antwerp, Belgium
Duration: Sep 20 2010Sep 24 2010

Publication series

NameASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering

Other

Other25th IEEE/ACM International Conference on Automated Software Engineering, ASE'10
Country/TerritoryBelgium
CityAntwerp
Period9/20/109/24/10

Keywords

  • Assembly code
  • Bytecode
  • Evolutionary computation
  • Fault localization
  • Legacy software
  • Program repair

ASJC Scopus subject areas

  • Computational Theory and Mathematics
  • Human-Computer Interaction
  • Software

Fingerprint

Dive into the research topics of 'Automated program repair through the evolution of assembly code'. Together they form a unique fingerprint.

Cite this