Genetic programming, a form of genetic algorithm that evolves programs and program-like executable structures, is a new paradigm for developing reliable, time- and cost-effective applications. The second volume of Advances in Genetic Programming highlights many of the most recent technical advances in this increasingly popular field. The twenty-three contributions are divided into four parts: Variations on the Genetic Programming Theme; Hierarchical, Recursive, and Pruning Genetic Programs; Analysis and Implementation Issues; and New Environments for Genetic Programming.The first part extends the core concepts of genetic programming through the addition of new evolutionary techniques -- adaptive and self-adaptive crossover methods, hill climbing operators, and the inclusion of introns into the representation.Creating more concise executable structures is a long-term research topic in genetic programming. The second part describes the field's most recent efforts, including the dynamic manipulation of automatically defined functions, evolving logic programs that generate recursive structures, and using minimum description length heuristics to determine when and how to prune evolving structures.The third part takes up the many implementation and analysis issues associated with evolving programs. Advanced applications of genetic programming to nontrivial real-world problems are described in the final part: remote sensing of pressure ridges in Arctic sea ice formations from satellite imagery, economic prediction through model evolution, the evolutionary development of stress and loading models for novel materials, and data mining of a large customer database to optimize responses to special offers.