Flight of the FINCH Through the Java Wilderness

  • Authors:
  • M. Orlov;M. Sipper

  • Affiliations:
  • Dept. of Comput. Sci., Ben-Gurion Univ., Beer-Sheva, Israel;-

  • Venue:
  • IEEE Transactions on Evolutionary Computation
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe Fertile Darwinian Bytecode Harvester (FINCH), a methodology for evolving Java bytecode, enabling the evolution of extant, unrestricted Java programs, or programs in other languages that compile to Java bytecode. Our approach is based upon the notion of compatible crossover, which produces correct programs by performing operand stack-based, local variables-based, 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. We demonstrate FINCH's unqualified success at solving a host of problems, including simple and complex regression, trail navigation, image classification, array sum, and tic-tac-toe. FINCH exploits the richness of the Java virtual machine architecture and type system, ultimately evolving human-readable solutions in the form of Java programs. The ability to evolve Java programs will hopefully lead to a valuable new tool in the software engineer's toolkit.