Genetic programming in the wild: evolving unrestricted bytecode

13 years 6 months ago
Genetic programming in the wild: evolving unrestricted bytecode
We describe a methodology for evolving Java bytecode, enabling the evolution of extant, unrestricted Java programs, or programs in other languages that compile to Java bytecode. Bytecode is evolved directly, without any intermediate genomic representation. Our approach is based upon the notion of compatible crossover, which produces correct programs by performing operand stack-, local variables-, and control flow-based compatibility checks on source and destination bytecode sections. This is in contrast to existing work that uses restricted subsets of the Java bytecode instruction set as a representation language for individuals in genetic programming. Given the huge universe of unrestricted Java bytecode, as is programs, our work enables the application of evolution within this realm. We experimentally validate our methodology both by extensively testing the correctness of compatible crossover on arbitrary bytecode, and by running evolution on a program that exploits the richness of...
Michael Orlov, Moshe Sipper
Added 26 May 2010
Updated 26 May 2010
Type Conference
Year 2009
Authors Michael Orlov, Moshe Sipper
Comments (0)