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 language | English (US) |
---|---|
Title of host publication | ASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering |
Pages | 313-316 |
Number of pages | 4 |
DOIs | |
State | Published - 2010 |
Externally published | Yes |
Event | 25th IEEE/ACM International Conference on Automated Software Engineering, ASE'10 - Antwerp, Belgium Duration: Sep 20 2010 → Sep 24 2010 |
Publication series
Name | ASE'10 - Proceedings of the IEEE/ACM International Conference on Automated Software Engineering |
---|
Other
Other | 25th IEEE/ACM International Conference on Automated Software Engineering, ASE'10 |
---|---|
Country | Belgium |
City | Antwerp |
Period | 9/20/10 → 9/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