Organic evolution on Earth organizes the forms and processes of matter and energy from the molecular level, up through the level of the ecosystem (those who accept the Gaia hypothesis will include the entire biosphere). Below the molecular level, and above the level of the ecosystem, evolution does not play a role. We will find that there are analogous limits in the range of action of evolution in synthetic systems as well.
In all the systems described, the lower limit is the language of representation within which evolution operates. In GAs, each implementation determines the meaning of each grouping of bits in the string (e.g., the values of coefficients in an equation). In GPs, the Lisp-like language contains a predefined set of language primitives which can make up the nodes (e.g., add, subtract, shift bits) and leaves (e.g., integer or real constant numbers, random number generators, other noise functions) of the trees. In Tierra the language consists of a small set of machine instructions.
There has been much discussion of how evolution could be allowed to operate on the language of representation itself. One very productive implementation of the idea is that of automatically defined functions [15,1,16]. They use Lisp expression trees, in which a special genetic operator is able to convert any sub-tree into a language primitive. These sub-trees are called modules, and in essence become frozen tree fragments, which are protected from mutation. As new elements of the underlying language, they become available for insertion by the mutation operator as whole units, and they are protected from fragmentation by the cross-over operator. Therefore they are able to propagate as units through the population.
In this way, the language representation is able to evolve higher level functions. Angeline and Pollack observe: ``... the emergence of a useful module reduces the size of the genotypes and, consequently, the number of available crossover and mutation points. This focuses the evolutionary process on improving the evolving programs at a higher level of abstraction rather than destroying previously discovered building blocks.'' This kind of approach should probably be developed further.
While automatically defined functions provides a method to allow higher level functions to evolve, most discussion of evolution of the representation is focused at the other end: finding a lower level representation, which can allow one to evolve the optimal form of the language representation at its current actual level.
This idea is often proposed in the context of a discussion of the problems of designing evolvable languages (as discussed in the previous section). It is questionable whether natural selection would favor evolvability, if such a system for evolving the language representation could be constructed.
I don't know of any examples where this idea has been implemented. While it would be an interesting avenue to explore, I am skeptical of its potential productivity. There has to be a level below which evolution does not operate: the physics. We must ultimately accept that evolution is embedded in a physics, which does not evolve.