For this essay, I will assume you have a basic understanding of Genetic Algorithms. GP largely resembles GA in terms of its basic algorithm. As a result, GP is a much more complex and difficult topic. Parse Trees One of the main requirements that must be met when generating possible programs is that they must be valid in their syntax. As a result, the program must first be turned into a more elegant representations.
Parse trees are simple, homogenous representations of programs.
As a result of that elegance, parse trees are GP's native tongue allowing genetic operators can be applied easily and coherently. Every leaf node will be a variable, a constant or a functions without parameters. The leaf nodes do not depend on anything else for their value and are referred to as terminals. We now have a consistent and simple way of expressing a program. As mentioned above, Lisp programs are basically parse trees.