Finch: A System for Evolving Java (Bytecode)

Michael Orlov, Moshe Sipper

Research output: Chapter in Book/Report/Conference proceedingChapterpeer-review


The established approach in genetic programming (GP) involves the definition of functions and terminals appropriate to the problem at hand, after which evolution of expressions using these definitions takes place. We have recently developed a system, dubbed FINCH (FertileDarwinian Bytecode Harvester), to evolutionarily improve actual, extant software, which was not intentionally written for the purpose of serving as a GP representation in particular, nor for evolution in general. 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. The ability to evolve Java programs will hopefully lead to a valuable new tool in the software engineer's toolkit.
Original languageEnglish
Title of host publicationGenetic Programming Theory and Practice VIII
Place of PublicationNew York, NY
PublisherSpringer New York
ISBN (Electronic)978-1-4419-7747-2
ISBN (Print)978-1-4419-7746-5
StatePublished - 20 Oct 2011

Publication series

NameGenetic and Evolutionary Computation
ISSN (Print)1932-0167
ISSN (Electronic)1932-0175


  • Java bytecode
  • automatic programming
  • software evolution
  • genetic programming


Dive into the research topics of 'Finch: A System for Evolving Java (Bytecode)'. Together they form a unique fingerprint.

Cite this