Self-modifying Cartesian Genetic Programming (SMCGP) is a general purpose, graph-based, developmental form of Genetic Programming
founded on Cartesian Genetic Programming. In addition to the usual computational functions, it includes functions that can
modify the program encoded in the genotype. This means that programs can be iterated to produce an infinite sequence of programs
(phenotypes) from a single evolved genotype. It also allows programs to acquire more inputs and produce more outputs during
this iteration. We discuss how SMCGP can be used and the results obtained in several different problem domains, including
digital circuits, generation of patterns and sequences, and mathematical problems. We find that SMCGP can efficiently solve
all the problems studied. In addition, we prove mathematically that evolved programs can provide general solutions to a number
of problems: n-input even-parity, n-input adder, and sequence approximation to π.
Keywords Cartesian Genetic Programming - Developmental systems