Some Remarks on Code Evolution with Genetic Programming

  • Wolfgang BanzhafEmail author
Part of the Emergence, Complexity and Computation book series (ECC, volume 28)


In this chapter we take a fresh look at the current status of evolving computer code using Genetic Programming methods. The emphasis is not so much on what has been achieved in detail in the past few years, but on the general research direction of code evolution and its ramifications for GP. We begin with a quick glance at the area of Search-based Software Engineering (SBSE), discuss the history of GP as applied to code evolution, consider various application scenarios, and speculate on techniques that might lead to a scaling-up of present-day approaches.



This essay was written on the occasion of the Festschrift for Julian F. Miller’s 60th birthday. It is dedicated to Julian, a wonderful friend and inspiring colleague.


  1. 1.
    Afzal, W., Torkar, R., Feldt, R.: A systematic review of search-based testing for non-functional system properties. Inf. Softw. Technol. 51, 957–976 (2009)CrossRefGoogle Scholar
  2. 2.
    Alba, E., Chicano, J.F.: Software project management with GAs. Inf. Sci. 177, 238002401 (2007)CrossRefGoogle Scholar
  3. 3.
    Antoniol, G., Di Penta, M., Harman, M.: Search-based techniques applied to optimization of project planning for a massive maintenance project. In: Proceedings of the 21st IEEE International Conference on Software Maintenance, 2005. ICSM’05, pp. 2400249. IEEE Press, New Jersey (2005)Google Scholar
  4. 4.
    Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. In: Proceedings of the 2008 IEEE Congress on Evolutionary Computation, pp. 162–168. IEEE Press, New York (2008)Google Scholar
  5. 5.
    Arcuri, A., White, D.R., Clark, J., Yao, X.: Multi-objective improvement of software using co-evolution and smart seeding. Proc. Int. Conf. SEAL 2008, 61–70 (2008)Google Scholar
  6. 6.
    Banzhaf, W., Nordin, P., Keller, R., Francone, F.: Genetic Programming—An Introduction. Morgan-Kaufmann, San Francisco, CA (1998)CrossRefzbMATHGoogle Scholar
  7. 7.
    Banzhaf, W., Miller, J.: The challenge of complexity. In: Menon, A. (ed.) Frontiers of Evolutionary Computation, pp. 243–260. Springer, Berlin (2004)CrossRefGoogle Scholar
  8. 8.
    Barr, E.T., Harman, M., Jia, Y., Marginean, A., Petke, J.: Automated software transplantation. In: Proceedigns of the 2015 International Symposium on Software Testing and Analysis, ISSTA 2015, pp. 257–269 (2015)Google Scholar
  9. 9.
    Clark, J.A., Jacob, J.L.: Protocols are programs too: the meta-heuristic search for security protocols. Inf. Softw. Technol. 43, 8910904 (2001)CrossRefGoogle Scholar
  10. 10.
    Curry, R., Lichodzijewski, P., Heywood, M.: Scaling genetic programming to large datasets using hierarchical dynamic subset selection. IEEE Trans. Syst. Man Cybern. Part B (Cybernetics) 37 1065–1073 (2007)Google Scholar
  11. 11.
    Dustin, E., Rashka, J., Paul, J.: Automated Software Testing. Addison Wesley (1999)Google Scholar
  12. 12.
    Espejo, P.G., Ventura, S., Herrera, F.: A survey on the application of genetic programming to classification. IEEE Trans. Syst. Man Cybern.-C 40, 121–144 (2010)CrossRefGoogle Scholar
  13. 13.
    Fontana, F., Zanoni, M., Marin, A.: Code smell detection: towards a machine learning-based approach. In: Proceedings of the IEEE International Conference on Software Maintenance, pp. 396-399. IEEE Press, New Jersey (2013)Google Scholar
  14. 14.
    Forrest, S., Nguyen, T., Weimer, W., Le Goues, C.: A genetic programming approach to automated software repair. In: Proceedigns of the 11th Annual Conference on Genetic and Evolutionary Computation, pp. 947–954. ACM Press, New York (2009)Google Scholar
  15. 15.
    Gabel, M., Su, Z.: A Study of the uniqueness of source code. In: Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 147–156. ACM Press, New York (2010)Google Scholar
  16. 16.
    Gathercole, C., Ross, P.: Dynamic training subset selection for supervised learning in genetic programming. In: Proceedings of the International Conference on Parallel Problem Solving from Nature, pp. 312–321. Springer, Berlin (1994)Google Scholar
  17. 17.
    Greer, D., Ruhe, G.: Software release planning: an evolutionary and iterative approach. Inf. Softw. Technol. 46, 2430253 (2004)CrossRefGoogle Scholar
  18. 18.
    Gruau, F.: Neural network synthesis using cellular encoding and the genetic algorithm. Ph.D. Thesis. Laboratoire de l’Informatique du Parallelisme, Ecole Normale Supirieure de Lyon (1994)Google Scholar
  19. 19.
    Harding, S., Miller, J.F., Banzhaf, W.: Developments in Cartesian Genetic Programming: self-modifying CGP. Genet. Program. Evolvable Mach. 11, 397–439 (2010)Google Scholar
  20. 20.
    Harman, M., Jones, B.F.: Search-based software engineering. Inf. Softw. Technol. 43, 833–839 (2001)CrossRefGoogle Scholar
  21. 21.
    Harman, M., Mansouri, S.A., Zhang, Y.: Search based software engineering: a comprehensive analysis and review of trends techniques and applications. Department of Computer Science, King’s College London Technical Report TR-09-03 (2009)Google Scholar
  22. 22.
    Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: trends, techniques and applications. ACM Comput. Surv. 45, 11:1–11:61 (2012)Google Scholar
  23. 23.
    Harman, M., Langdon, W.B., Jia, Y., White, D.R., Arcuri, A., Clark, J.: The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs. In: Proceedings ot the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE 12), pp. 1–14. ACM Press, New York (2012)Google Scholar
  24. 24.
    Hillis, W.D.: Co-evolving parasites improve simulated evolution as an optimization procedure. Physica D: Nonlinear Phenom. 42, 228–234 (1990)CrossRefGoogle Scholar
  25. 25.
    Hu, T., Payne, J.L., Banzhaf, W., Moore, J.H.: Evolutionary dynamics on multiple scales: a quantitative analysis of the interplay between genotype, phenotype, and fitness in linear genetic programming. Genet. Program. Evolvable Mach. 13, 305–337 (2012)CrossRefGoogle Scholar
  26. 26.
    Jha, S., Gulwani, S., Seshia, S.A., Tiwari, A.: Oracle-guided component-based program synthesis. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE-2010), pp. 215–224. ACM, New York (2010)Google Scholar
  27. 27.
    Johnson, C.G.: Genetic programming with fitness based on model checking. In: European Conference on Genetic Programming, pp. 114–124. Springer, Berlin (2007)Google Scholar
  28. 28.
    Katz, G., Peled, D.: Model checking-based genetic programming with an application to mutual exclusion. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008, LNCS 4963, p. 1410156 (2008)Google Scholar
  29. 29.
    Koza, J.: Genetic Programming: on the programming of computers by means of natural selection. MIT Press, Cambridge (1992)zbMATHGoogle Scholar
  30. 30.
    Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Subprograms. MIT Press, Cambridge, MA (1994)zbMATHGoogle Scholar
  31. 31.
    Koza, J.R.: Genetic Programming III: Darwinian Invention and Problem Solving. Morgan Kaufmann, San Francisco, CA (1999)zbMATHGoogle Scholar
  32. 32.
    Langdon, W.B.: Scaling of program tree fitness spaces. Evolut. Comput. 7, 399–428 (1999)CrossRefGoogle Scholar
  33. 33.
    Langdon, W.B.: Size-fair and homologous tree genetic programming crossovers. Genet. Program. Evolvable Mach. 1, 95–119 (2000)CrossRefzbMATHGoogle Scholar
  34. 34.
    Langdon, W.B., Harman, M.: Genetically improved CUDA C++ software. In: Proceedings of the European Conference on Genetic Programming, pp. 87–99. Springer, Berlin (2014)Google Scholar
  35. 35.
    Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE Trans. Evol. Comput. 19, 118–135 (2015)CrossRefGoogle Scholar
  36. 36.
    Langdon, W.B., Harman, M.: Genetically improved CUDA C++ software. In: Proceedings of the European Conference on Genetic Programming, pp. 87–99. Springer, Berlin (2014)Google Scholar
  37. 37.
    Langdon, W.B., Poli, R.: Foundations of Genetic Programming. Springer, Berlin (2002)CrossRefzbMATHGoogle Scholar
  38. 38.
    Lasarczyk, C.W.G., Dittrich, P., Banzhaf, W.: Dynamic subset selection based on a fitness case topology. Evol. Comput. 12, 223–242 (2004)CrossRefGoogle Scholar
  39. 39.
    Lau, T.A., Weld, D.S.: Programming by demonstration: an inductive learning formulation. In: Proceedings of the 4th international conference on Intelligent user interfaces IUI-1999, pp. 145–152. ACM, New York (1999)Google Scholar
  40. 40.
    Le Goues, C., Nguyen, T., Forrest, S., Weimer, W.: GenProg: a generic method for automatic software repair. IEEE Trans. Softw. Eng. 38, 54–72 (2012)CrossRefGoogle Scholar
  41. 41.
    Martincorena, I., Luscombe, N.M.: Non-random mutation: the evolution of targeted hypermutation and hypomutation. Bioessays 35, 123–130 (2012)CrossRefGoogle Scholar
  42. 42.
    McBurney, P.W., Liu, C., McMillan, C.: Automated feature discovery via sentence selection and source code summarization. J. Softw.: Evol. Process 28, 120–145 (2016)Google Scholar
  43. 43.
    McMinn, P.: Search-based software test data generation: a survey. Softw. Test. Verification Reliab. 14, 1050156 (2004)Google Scholar
  44. 44.
    Menon, A., Tamuz, O., Gulwani, S., Lampson, B., Kalai, A.: A machine learning framework for programming by example. In: JMLR W & CP Proceedings of ICML (2013), vol 28 (2013)Google Scholar
  45. 45.
    Mens, T., Tourwe, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30, 126–139 (2004)CrossRefGoogle Scholar
  46. 46.
    Nguyen, A.T., Nguyen, T.T., Nguyen, H.A., Tamrawi, A., Nguyen, H.V., Al-Kofahi, J., Nguyen, T.N.: Graph-based pattern-oriented, context-sensitive source code completion. In: Proceedigns of the 34th International Conference on Software Engineering, pp. 69–79. IEEE Press, New Jersey (2012)Google Scholar
  47. 47.
    Ohno, S.: Evolution by Gene Duplication. Springer, New York (1970)CrossRefGoogle Scholar
  48. 48.
    Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Using genetic improvement and code transplants to specialise a C++ program to a problem class. In: Genetic Programming—Proceedings of the 17th European Conference, EuroGP 2014, pp. 137–149. Springer, Berlin (2014)Google Scholar
  49. 49.
    Petke, J., Langdon, W.B., Harman, M.: Applying genetic improvement to MiniSAT. In: Proceedings of the International Symposium on Search Based Software Engineering, pp. 257–262. Springer, Berlin (2013)Google Scholar
  50. 50.
    Reiss, S.P.: Semantics-Based Code Search. ICSE09. 16–24 May 2009, pp. 243–253. IEEE Press, New Jersey (2009)Google Scholar
  51. 51.
    Roy, C.K., Cordy, J.R.: A survey on software clone detection research. Queens Sch. Comput. TR 541–2007 (2007)Google Scholar
  52. 52.
    Schmidt, M.D., Lipson, H.: Incorporating expert knowledge in evolutionary search: a study of seeding methods. In: Proceedings of the 11th Annual conference on Genetic and evolutionary computation, pp. 1091–1098. ACM Press, New York (2009)Google Scholar
  53. 53.
    Singh, R., Gulwani, S.: Predicting a correct program in programming by example. In: Kroening, D., Pasareanu, C.S. (eds.) Proceedings of the CAV 2015, pp. 398–414. Springer, Switzerland (2015)Google Scholar
  54. 54.
    Weimer, W., Nguyen, T., Le Goues, C., Forrest, S.: Automatically finding patches using genetic programming. In: Proceedings of ICSE09, 16–24 May 2009, Vancouver, Canada, pp. 364–374. IEEE Press, New Jersey (2009)Google Scholar
  55. 55.
    White, D.R., Arcuri, A., Clark, J.A.: Evolutionary improvement of programs. IEEE Trans. Evol. Comput. 15, 515–538 (2011)CrossRefGoogle Scholar
  56. 56.
    Yahav, E.: Analysis and synthesis of “Big Code”. In: Esparza, J. et al. (eds.) Dependable Software Systems Engineering. IOS Press (2016)Google Scholar

Copyright information

© Springer International Publishing AG 2018

Authors and Affiliations

  1. 1.BEACON Center for the Study of Evolution in Action and Department of Computer Science and EngineeringMichigan State UniversityEast LansingUSA

Personalised recommendations