Traditional genetic programming (GP) is typically not used to perform unrestricted evolution on entire programs at the source code level. Instead, only small sections within programs are usually evolved. Not being able to evolve whole programs is an issue since it limits the flexibility of what can be evolved. Evolving programs in either bytecode or assembly language is a method that has been used to perform unrestricted evolution. This paper provides an overview of applying genetic programming to Java bytecode and x86 assembly. Two examples of how this method has been implemented will be explored. We will also discuss experimental results that include evolving recursive functions and automated bug repair.
"Applying Genetic Programming to Bytecode and Assembly,"
Scholarly Horizons: University of Minnesota, Morris Undergraduate Journal: Vol. 1
, Article 4.
Available at: http://digitalcommons.morris.umn.edu/horizons/vol1/iss2/4