FINCH: A System for Evolving Java (Bytecode)

Created by W.Langdon from gp-bibliography.bib Revision:1.4524

  author =       "Michael Orlov and Moshe Sipper",
  title =        "{FINCH}: A System for Evolving {Java} (Bytecode)",
  booktitle =    "Genetic Programming Theory and Practice VIII",
  year =         "2010",
  editor =       "Rick Riolo and Trent McConaghy and 
                 Ekaterina Vladislavleva",
  series =       "Genetic and Evolutionary Computation",
  volume =       "8",
  address =      "Ann Arbor, USA",
  month =        "20-22 " # may,
  publisher =    "Springer",
  chapter =      "1",
  pages =        "1--16",
  keywords =     "genetic algorithms, genetic programming, Java
                 bytecode, automatic programming, software evolution,",
  isbn13 =       "978-1-4419-7746-5",
  URL =          "",
  URL =          "",
  URL =          "",
  size =         "16 pages",
  abstract =     "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 (Fertile Darwinian 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.",
  notes =        "Recursion, Compatible bytecode crossover v JVM stack,
                 variable access sets, (possibly multiple) traversal of
                 data flow graph. Identical or narrow types. Control
                 flow. Crossover prevents verification errors (may still
                 get runtime error, eg exception and timeout). Section
                 5: BNf or other grammars not good since BNF does not
                 capture semantics. Temporary instrumentation used to
                 halt runaway programs. dead code removal. symbolic
                 regression quartic polynomial, Santa Fe artificial ant,
                 intertwined spirals, array sum, tic-tac-toe

                 Part of \cite{Riolo:2010:GPTP}",

Genetic Programming entries for Michael Orlov Moshe Sipper