Abstract
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 is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
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)
Alba, E., Chicano, J.F.: Software project management with GAs. Inf. Sci. 177, 238002401 (2007)
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)
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)
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)
Banzhaf, W., Nordin, P., Keller, R., Francone, F.: Genetic Programming—An Introduction. Morgan-Kaufmann, San Francisco, CA (1998)
Banzhaf, W., Miller, J.: The challenge of complexity. In: Menon, A. (ed.) Frontiers of Evolutionary Computation, pp. 243–260. Springer, Berlin (2004)
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)
Clark, J.A., Jacob, J.L.: Protocols are programs too: the meta-heuristic search for security protocols. Inf. Softw. Technol. 43, 8910904 (2001)
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)
Dustin, E., Rashka, J., Paul, J.: Automated Software Testing. Addison Wesley (1999)
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)
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)
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)
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)
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)
Greer, D., Ruhe, G.: Software release planning: an evolutionary and iterative approach. Inf. Softw. Technol. 46, 2430253 (2004)
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)
Harding, S., Miller, J.F., Banzhaf, W.: Developments in Cartesian Genetic Programming: self-modifying CGP. Genet. Program. Evolvable Mach. 11, 397–439 (2010)
Harman, M., Jones, B.F.: Search-based software engineering. Inf. Softw. Technol. 43, 833–839 (2001)
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)
Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: trends, techniques and applications. ACM Comput. Surv. 45, 11:1–11:61 (2012)
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)
Hillis, W.D.: Co-evolving parasites improve simulated evolution as an optimization procedure. Physica D: Nonlinear Phenom. 42, 228–234 (1990)
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)
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)
Johnson, C.G.: Genetic programming with fitness based on model checking. In: European Conference on Genetic Programming, pp. 114–124. Springer, Berlin (2007)
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)
Koza, J.: Genetic Programming: on the programming of computers by means of natural selection. MIT Press, Cambridge (1992)
Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Subprograms. MIT Press, Cambridge, MA (1994)
Koza, J.R.: Genetic Programming III: Darwinian Invention and Problem Solving. Morgan Kaufmann, San Francisco, CA (1999)
Langdon, W.B.: Scaling of program tree fitness spaces. Evolut. Comput. 7, 399–428 (1999)
Langdon, W.B.: Size-fair and homologous tree genetic programming crossovers. Genet. Program. Evolvable Mach. 1, 95–119 (2000)
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)
Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE Trans. Evol. Comput. 19, 118–135 (2015)
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)
Langdon, W.B., Poli, R.: Foundations of Genetic Programming. Springer, Berlin (2002)
Lasarczyk, C.W.G., Dittrich, P., Banzhaf, W.: Dynamic subset selection based on a fitness case topology. Evol. Comput. 12, 223–242 (2004)
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)
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)
Martincorena, I., Luscombe, N.M.: Non-random mutation: the evolution of targeted hypermutation and hypomutation. Bioessays 35, 123–130 (2012)
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)
McMinn, P.: Search-based software test data generation: a survey. Softw. Test. Verification Reliab. 14, 1050156 (2004)
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)
Mens, T., Tourwe, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30, 126–139 (2004)
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)
Ohno, S.: Evolution by Gene Duplication. Springer, New York (1970)
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)
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)
Reiss, S.P.: Semantics-Based Code Search. ICSE09. 16–24 May 2009, pp. 243–253. IEEE Press, New Jersey (2009)
Roy, C.K., Cordy, J.R.: A survey on software clone detection research. Queens Sch. Comput. TR 541–2007 (2007)
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)
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)
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)
White, D.R., Arcuri, A., Clark, J.A.: Evolutionary improvement of programs. IEEE Trans. Evol. Comput. 15, 515–538 (2011)
Yahav, E.: Analysis and synthesis of “Big Code”. In: Esparza, J. et al. (eds.) Dependable Software Systems Engineering. IOS Press (2016)
Acknowledgements
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.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this chapter
Cite this chapter
Banzhaf, W. (2018). Some Remarks on Code Evolution with Genetic Programming. In: Stepney, S., Adamatzky, A. (eds) Inspired by Nature. Emergence, Complexity and Computation, vol 28. Springer, Cham. https://doi.org/10.1007/978-3-319-67997-6_6
Download citation
DOI: https://doi.org/10.1007/978-3-319-67997-6_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-67996-9
Online ISBN: 978-3-319-67997-6
eBook Packages: EngineeringEngineering (R0)