The basic idea is combination of simulated breeding and genetic programming. The former technique came from R. Dawkins' Blind Watchmaker, and the latter came from J. Koza's genetic algorithm that uses Lisp forms as chromosomes.