Genetic Programming (GP) is a group of Evolutionary Algorithms (EAs) that compose computer programs. GP takes a set of example I/O pairs as the program specification and searches the program that satisfies the given examples. This task to compose computer programs automatically is called Program Synthesis (PS).