|
ABSTRACT
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 applications of evolution within this realm. We experimentally validate our methodology by both extensively testing the correctness of compatible crossover on arbitrary bytecode, and by running evolution on a program that exploits the richness of the Java virtual machine architecture and type system.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
E. Bruneton, R. Lenglet, and T. Coupaye. ASM: A code manipulation tool to implement adaptable systems. In Adaptable and Extensible Component Systems, Oct. 17-18, Grenoble, France, pp. 184--195, 2002.
|
| |
2
|
C. Darwin. On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life. John Murray, London, 1859.
|
| |
3
|
J. Engel. Programming for the Java Virtual Machine. Addison-Wesley, Reading, MA, USA, July 1999.
|
| |
4
|
B. Harvey, J. Foster, and D. Frincke. Towards byte code genetic programming. In W. Banzhaf, J. Daida, A. E. Eiben, M. H. Garzon, V. Honavar, M. Jakiela, and R. E. Smith, editors, Proceedings of the Genetic and Evolutionary Computation Conference, Orlando, Florida, USA, July 13-17, 1999, volume 2, page 1234, San Francisco, CA, USA, Oct. 1999. Morgan Kaufmann.
|
| |
5
|
L. Huelsbergen. Fast evolution of custom machine representations. In D. Corne, Z. Michalewicz, and B. McKay, editors, The 2005 IEEE Congress on Evolutionary Computation, 2-5 September 2005, Edinburgh, Scotland, UK, volume 1, pages 97--104. IEEE Press, Sept. 2005.
|
| |
6
|
S. Klahold, S. Frank, R. E. Keller, and W. Banzhaf. Exploring the possibilites and restrictions of genetic programming in Java bytecode. In J. R. Koza, editor, Late Breaking Papers at the Genetic Programming 1998 Conference, Madison, Wisconsin, USA, July 22-25, 1998, pages 120--124, Madison, WI, USA, July 1998. Omni Press.
|
| |
7
|
|
| |
8
|
|
| |
9
|
|
| |
10
|
S. Luke and L. Panait. A Java-based evolutionary computation research system. Online, Mar. 2004. http://cs.gmu.edu/ eclab/projects/ecj.
|
| |
11
|
|
| |
12
|
E. Lukschandl, M. Holmlund, E. Modén, M. Nordahl, and P. Nordin. Induction of Java bytecode with genetic programming. In J. R. Koza, editor, Late Breaking Papers at the Genetic Programming 1998 Conference, Madison, Wisconsin, USA, July 22-25, 1998, pages 135--142, Madison, WI, USA, July 1998. Omni Press.
|
| |
13
|
|
| |
14
|
|
| |
15
|
P. Nordin. Evolutionary Program Induction of Binary Machine Code and its Applications. Krehl Verlag, Münster, Germany, 1997.
|
| |
16
|
|
| |
17
|
T. Perkis. Stack-based genetic programming. In Z. Michalewicz, J. D. Schaffer, H.-P. Schwefel, D. B. Fogel, and H. Kitano, editors, Proceedings of the First IEEE Conference on Evolutionary Computation, IEEE World Congress on Computational Intelligence, June 27-29, 1994, Orlando, Florida, USA, volume 1, pages 148--153. IEEE Neural Networks, June 1994.
|
| |
18
|
R. Poli, W. B. Langdon, and N. F. McPhee. A Field Guide to Genetic Programming. Lulu Enterprises, UK, Mar. 2008.
|
| |
19
|
F. Servant, D. Robilliard, and C. Fonlupt. JEB: Java evolutionary byte-code -- implementation and tests. In Artificial Evolution, 7th International Conference, Evolution Artificielle, EA 2005, Lille, France, October 26-28, 2005, Oct. 2005.
|
| |
20
|
|
| |
21
|
E. B. Tchernev. Forth crossover is not a macromutation? In J. R. Koza, W. Banzhaf, K. Chellapilla, K. Deb, M. Dorigo, D. B. Fogel, M. H. Garzon, D. E. Goldberg, H. Iba, and R. Riolo, editors, Genetic Programming 1998: Proceedings of the Third Annual Conference, July 22-25, 1998, Madison, Wisconsin, USA, pages 381--386, San Francisco, CA, USA, Aug. 1998. Morgan Kaufmann.
|
| |
22
|
E. B. Tchernev and D. S. Phatak. Control structures in linear and stack-based genetic programming. In M. Keijzer, editor, Late Breaking Papers at the 2004 Genetic and Evolutionary Computation Conference, June 26-30, 2004, Seattle, Washington, USA. Distributed on CD-ROM at GECCO-2004, June 2004.
|
| |
23
|
J. R. Woodward. Evolving turing complete representations. In R. Sarker, R. Reynolds, H. Abbass, K. C. Tan, B. McKay, D. Essam, and T. Gedeon, editors, The 2003 Congress on Evolutionary Computation, CEC 2003, Canberra, Australia, 8-12 December, 2003, volume 2, pages 830--837. IEEE Press, Dec. 2003.
|
|