Automated program repair through the evolution of assembly code

Eric Schulte, Stephanie Forrest, Westley Weimer

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

32 Citations (Scopus)

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 - Dec 10 2010
Externally publishedYes
Event25th IEEE/ACM International Conference on Automated Software Engineering, ASE'10 - Antwerp, Belgium
Duration: Sep 20 2010Sep 24 2010

Other

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

Fingerprint

Repair
Program assemblers
Defects
Evolutionary algorithms

Keywords

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

ASJC Scopus subject areas

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

Cite this

Schulte, E., Forrest, S., & Weimer, W. (2010). Automated program repair through the evolution of assembly code. In ASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering (pp. 313-316) https://doi.org/10.1145/1858996.1859059

Automated program repair through the evolution of assembly code. / Schulte, Eric; Forrest, Stephanie; Weimer, Westley.

ASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. 2010. p. 313-316.

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

Schulte, E, Forrest, S & Weimer, W 2010, Automated program repair through the evolution of assembly code. in ASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. pp. 313-316, 25th IEEE/ACM International Conference on Automated Software Engineering, ASE'10, Antwerp, Belgium, 9/20/10. https://doi.org/10.1145/1858996.1859059
Schulte E, Forrest S, Weimer W. Automated program repair through the evolution of assembly code. In ASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. 2010. p. 313-316 https://doi.org/10.1145/1858996.1859059
Schulte, Eric ; Forrest, Stephanie ; Weimer, Westley. / Automated program repair through the evolution of assembly code. ASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. 2010. pp. 313-316
@inproceedings{33eb66a8d8ab44fa81511d2122075e53,
title = "Automated program repair through the evolution of assembly code",
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.",
keywords = "Assembly code, Bytecode, Evolutionary computation, Fault localization, Legacy software, Program repair",
author = "Eric Schulte and Stephanie Forrest and Westley Weimer",
year = "2010",
month = "12",
day = "10",
doi = "10.1145/1858996.1859059",
language = "English (US)",
isbn = "9781450301169",
pages = "313--316",
booktitle = "ASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering",

}

TY - GEN

T1 - Automated program repair through the evolution of assembly code

AU - Schulte, Eric

AU - Forrest, Stephanie

AU - Weimer, Westley

PY - 2010/12/10

Y1 - 2010/12/10

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

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

KW - Assembly code

KW - Bytecode

KW - Evolutionary computation

KW - Fault localization

KW - Legacy software

KW - Program repair

UR - http://www.scopus.com/inward/record.url?scp=78649773761&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=78649773761&partnerID=8YFLogxK

U2 - 10.1145/1858996.1859059

DO - 10.1145/1858996.1859059

M3 - Conference contribution

AN - SCOPUS:78649773761

SN - 9781450301169

SP - 313

EP - 316

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

ER -