Advertisement

Genetic Improvement of Software for Multiple Objectives

  • William B. Langdon
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9275)

Abstract

Genetic programming (GP) can increase computer program’s functional and non-functional performance. It can automatically port or refactor legacy code written by domain experts. Working with programmers it can grow and graft (GGGP) new functionality into legacy systems and parallel Bioinformatics GPGPU code. We review Genetic Improvement (GI) and SBSE research on evolving software.

Keywords

Genetic Programming Genetic Improvement Software Product Line Garbage Collection Test Oracle 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Notes

Acknowledgements

I am grateful for the assistance of Andrea Arcuri, Robert Feldt, Marc Schoenauer, Wes Weimer and Darrell Whitley. Tesla donated by nVidia (http://www.nvidia.com).

References

  1. 1.
    Ryan, C., Ivan, L.: Automatic parallelization of arbitrary programs. In: Langdon, W.B., Fogarty, T.C., Nordin, P., Poli, R. (eds.) EuroGP 1999. LNCS, vol. 1598, pp. 244–254. Springer, Heidelberg (1999). http://www.cs.bham.ac.uk/\(\sim \) wbl/biblio/gp-html/ryan_1999_apap.html CrossRefGoogle Scholar
  2. 2.
    Koza, J.R.: Genetic Programming: On the Programming of Computers by Natural Selection. MIT press (1992). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/koza_book.html
  3. 3.
    Poli, R., Langdon, W.B., McPhee, N.F.: A field guide to genetic programming (2008). Published via http://lulu.com and freely available at http://www.gp-field-guide.org.uk (With contributions by J.R. Koza). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/poli08_fieldguide.html
  4. 4.
    Weimer, W., Nguyen, T., Le Goues, C., Forrest, S.: Automatically finding patches using genetic programming. In: Fickas, S., (ed.) ICSE 2009, Vancouver, pp. 364–374 (2009). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Weimer_2009_ICES.html
  5. 5.
    Forrest, S., Nguyen, T., Weimer, W., Le Goues, C.: A genetic programming approach to automated software repair. In: Raidl, G., et al. (eds.) GECCO 2009, pp. 947–954, ACM, Montreal (2009) (Best paper). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/DBLP_conf_gecco_ForrestNWG09.html
  6. 6.
    Weimer, W., Forrest, S., Le Goues, C., Nguyen, T.: Automatic program repair with evolutionary computation. Commun. ACM 53(5), 109–116 (2010). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Weimer_2010_ACM.html CrossRefGoogle Scholar
  7. 7.
    Fast, E., Le Goues, C., Forrest, S., Weimer, W.: Designing better fitness functions for automated program repair. In: Branke, J., et al. (eds.) GECCO 2010, pp. 965–972. ACM (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Fast_2010_GECCO.html
  8. 8.
    Schulte, E., Forrest, S., Weimer, W.: Automated program repair through the evolution of assembly code. In: ASE 2010, pp. 313–316. ACM, Antwerp (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/schulte10__autom_progr_repair_evolut_assem_code.html
  9. 9.
    Schulte, E., Fry, Z.P., Fast, E., Weimer, W., Forrest, S.: Software mutational robustness. Genet. Program Evolvable Mach. 15(3), 281–312 (2014). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/schulte10__autom_progr_repair_evolut_assem_code.html CrossRefGoogle Scholar
  10. 10.
    Orlov, M., Sipper, M.: Flight of the FINCH through the Java wilderness. IEEE Trans. EC 15(2), 166–182 (2011). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Orlov_2011_ieeeTEC.html Google Scholar
  11. 11.
    Langdon, W.B., Nordin, J.P.: Seeding genetic programming populations. In: Poli, R., Banzhaf, W., Langdon, W.B., Miller, J., Nordin, P., Fogarty, T.C. (eds.) EuroGP 2000. LNCS, vol. 1802, pp. 304–315. Springer, Heidelberg (2000). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/langdon_2000_seed.html CrossRefGoogle Scholar
  12. 12.
    Langdon, W.B.: Genetically improved software. In: Gandomi, A.H., et al. (eds.) Handbook of Genetic Programming Applications. Springer (forthcoming). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2015_hbgpa.html
  13. 13.
    Harman, M., Jones, B.F.: Search based software engineering. Inf. Softw. Technol. 43(14), 833–839 (2001)CrossRefGoogle Scholar
  14. 14.
    Langdon, W.B., Petke, J., White, D.R.: Genetic improvement 2015 chairs’ welcome. In: GECCO 2015 Companion. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2015_gi.html
  15. 15.
    Arcuri, A., Yao, X.: Co-evolutionary automatic programming for software development. Inf. Sci. 259, 412–432 (2014). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Arcuri2010.html CrossRefGoogle Scholar
  16. 16.
    Hussain, D., Malliaris, S.: Evolutionary techniques applied to hashing: An efficient data retrieval method. In: Whitley, D., et al. (eds.) GECCO-2000, p. 760. Morgan Kaufmann, Las Vegas, Nevada, USA (2000). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Hussain_2000_GECCO.html
  17. 17.
    Berarducci, P., Jordan, D., Martin, D., Seitzer, J.: GEVOSH: using grammatical evolution to generate hashing functions. In: Poli, R., et al. (eds.) GECCO 2004 Workshop Proceedings, Seattle, Washington, USA (2004). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/berarducci_2004_ugw_pber.html
  18. 18.
    Estebanez, C., Saez, Y., Recio, G., Isasi, P.: Automatic design of noncryptographic hash functions using genetic programming. Computational Intelligence (forthcoming). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Estebanez_2014_CI.html
  19. 19.
    Karasek, J., Burget, R., Morsky, O.: Towards an automatic design of non-cryptographic hash function. In: TSP 2011, pp. 19–23, Budapest (2011). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Karasek_2011_TSP.html
  20. 20.
    Paterson, N., Livesey, M.: Evolving caching algorithms in C by genetic programming. In: Koza, J.R., et al. (eds.): Genetic Programming, pp. 262–267. Morgan Kaufmann, Stanford University, CA, USA (1997). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Paterson_1997_ecacGP.html
  21. 21.
    O’Neill, M., Ryan, C.: Automatic generation of caching algorithms. In: Miettinen, K., et al. (eds.) Evolutionary Algorithms in Engineering and Computer Science, pp. 127-134, John Wiley and Sons, Jyväskylä, Finland (1999). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/oneill_1999_AGCA.html
  22. 22.
    Branke, J., Funes, P., Thiele, F.: Evolutionary design of en-route caching strategies. Appl. Soft Comput. 7(3), 890–898 (2006). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Branke_2006_ASC.html CrossRefGoogle Scholar
  23. 23.
    Risco-Martin, J.L., Atienza, D., Colmenar, J.M., Garnica, O.: A parallel evolutionary algorithm to optimize dynamic memory managers in embedded systems. Parallel Comput. 36(10–11), 572–590 (2010). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/RiscoMartin2010572.html CrossRefzbMATHGoogle Scholar
  24. 24.
    Wu, F., Weimer, W., Harman, M., Jia, Y., Krinke, J.: Deep parameter optimisation. In: GECCO 2015. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Wu_2015_GECCO.html
  25. 25.
    Rodriguez-Mier, P., Mucientes, M., Lama, M., Couto, M.I.: Composition of web services through genetic programming. Evol. Intell. 3(3–4), 171–186 (2010). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Rodriguez-Mier_2010_EI.html CrossRefGoogle Scholar
  26. 26.
    Fredericks, E.M., Cheng, B.H.C.: Exploring automated software composition with genetic programming. In: Blum, C., et al. (eds.) GECCO 2013 Companion, pp. 1733–1734. ACM, Amsterdam, The Netherlands (2013). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Fredericks_2013_GECCOcomp.html
  27. 27.
    Xiao, L., Chang, C.K., Yang, H.-I., Lu, K.-S., Jiang, H.-Y.: Automated web service composition using genetic programming. In: COMPSACW 2012, pp. 7–12, Izmir (2012). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Xiao_2012_COMPSACW.html
  28. 28.
    Burke, E.K., Gendreau, M., Hyde, M., Kendall, G., Ochoa, G., Ozcan, E., Qu, R.: Hyper-heuristics: a survey of the state of the art. JORS 64(12), 1695–1724 (2013). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Burke2013.html CrossRefGoogle Scholar
  29. 29.
    Pappa, G.L., Ochoa, G., Hyde, M.R., Freitas, A.A., Woodward, J., Swan, J.: Contrasting meta-learning and hyper-heuristic research: the role of evolutionary algorithms. Genet. Program Evolvable Mach. 15(1), 3–35 (2014). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Pappa_2013_GPEM.html CrossRefGoogle Scholar
  30. 30.
    Mahajan, A., Ali, M.S.: Superblock scheduling using genetic programming for embedded systems. In: ICCI 2008. IEEE, pp. 261–266 (2008). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Mahajan_2008_ieeeICCI.html
  31. 31.
    Cadar, C., Pietzuch, P., Wolf, A.L.: Multiplicity computing: a vision of software engineering for next-generation computing platform applications. In Sullivan, K., ed.: FoSER 2010 FSE/SDP workshop, pp. 81-86. ACM, Santa Fe, New Mexico, USA (2010). http://dx.doi.org/10.1145/1882362.1882380
  32. 32.
    DeMillo, R.A., Offutt, A.J.: Constraint-based automatic test data generation. IEEE Trans. Software Eng. 17(9), 900–910 (1991). http://dx.doi.org/10.1109/32.92910 CrossRefGoogle Scholar
  33. 33.
    Langdon, W.B., Harman, M., Jia, Y.: Efficient multi-objective higher order mutation testing with genetic programming. JSS 83(12), 2416–2430 (2010). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/langdon_2010_jss.html Google Scholar
  34. 34.
    Feldt, R.: Generating diverse software versions with genetic programming: an experimental study. IEE Proceedings 145(6), 228–236 (1998). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/feldt_1998_gdsvGPes.html CrossRefGoogle Scholar
  35. 35.
    Imamura, K., Foster, J.A.: Fault-tolerant computing with N-version genetic programming. In Spector, L., et al. (eds.) GECCO-2001, p. 178, Morgan Kaufmann, San Francisco, California, USA (2001). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/imamura_2001_gecco.html
  36. 36.
    Imamura, K., Soule, T., Heckendorn, R.B., Foster, J.A.: Behavioral diversity and a probabilistically optimal GP ensemble. Genet. Program Evolvable Mach. 4(3), 235–253 (2003). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/imamura_2003_GPEM.html CrossRefGoogle Scholar
  37. 37.
    Langdon, W.B., Buxton, B.F.: Genetic programming for combining classifiers. In Spector, L., et al. (eds.) GECCO-2001, pp. 66–73. Morgan Kaufmann, San Francisco, California, USA (2001). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2001_gROC.html
  38. 38.
    Buxton, B.F., Langdon, W.B., Barrett, S.J.: Data fusion by intelligent classifier combination. Meas. Contr. 34(8), 229–234 (2001). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/imamura_2003_GPEM.html CrossRefzbMATHGoogle Scholar
  39. 39.
    Langdon, W.B., Poli, R.: Evolving problems to learn about particle swarm and other optimisers. In: Corne, D., et al. (eds.) CEC-2005, pp. 81–88. IEEE Press, Edinburgh, UK (2005). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2005_CECb.html
  40. 40.
    Cotillon, A., Valencia, P., Jurdak, R.: Android genetic programming framework. In: Moraglio, A., Silva, S., Krawiec, K., Machado, P., Cotta, C. (eds.) EuroGP 2012. LNCS, vol. 7244, pp. 13–24. Springer, Heidelberg (2012). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/cotillon_2012_EuroGP.html CrossRefGoogle Scholar
  41. 41.
    Lopez-Herrejon, R.E., Linsbauer, L.: Genetic improvement for software product lines: an overview and a roadmap. In: GECCO 2015 Companion. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Lopez-Herrejon_2015_gi.html
  42. 42.
    Landsborough, J., Harding, S., Fugate, S.: Removing the kitchen sink from software. In GECCO 2015 Companion. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Landsborough_2015_gi.html
  43. 43.
    Schulte, E., Weimer, W., Forrest, S.: Repairing COTS router firmware without access to source code or test suites: A case study in evolutionary software repair. In: GECCO 2015 Companion. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Schulte_2015_gi.html
  44. 44.
    Yeboah-Antwi, K., Baudry, B.: Embedding adaptivity in software systems using the ECSELR framework. In: GECCO 2015 Companion. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Yeboah-Antwi_2015_gi.html
  45. 45.
    White, D.R., Arcuri, A., Clark, J.A.: Evolutionary improvement of programs. IEEE Trans. EC 15(4), 515–538 (2011). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/White_2011_ieeeTEC.html Google Scholar
  46. 46.
    Sitthi-amorn, P., Modly, N., Weimer, W., Lawrence, J.: Genetic programming for shader simplification. ACM Trans. Graphics, 30(6), article: 152 (2011). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/DBLP_journals_tog_Sitthi-amornMWL11.html
  47. 47.
    Feldt, R.: Genetic programming as an explorative tool in early software development phases. In: Ryan, C., Buckley, J. (eds.) Proceedings of the 1st International Workshop on Soft Computing Applied to Software Engineering, pp. 11–20. Limerick University Press, University of Limerick, Ireland (1999). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/feldt_1999_GPxtxsdp.html
  48. 48.
    Harman, M., Langdon, W.B., Jia, Y., White, D.R., Arcuri, A., Clark, J.A.: The GISMOE challenge: constructing the Pareto program surface using genetic programming to find better programs. In: ASE 2012, pp. 1–14. ACM, Essen, Germany (2012). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Harman_2012_ASE.html
  49. 49.
    Lukschandl, E., Holmlund, M., Moden, E.: Automatic evolution of Java bytecode: first experience with the Java virtual machine. In: Poli, R., et al. (eds.) Late Breaking Papers at EuroGP 1998, Paris, France, CSRP-98-10, pp. 14–16, The University of Birmingham, UK (1998). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/lukschandl_1998_1java.html
  50. 50.
    Archanjo, G.A., Von Zuben, F.J.: Genetic programming for automating the development of data management algorithms in information technology systems. Advances in Software Engineering (2012). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Archanjo_2012_ASE.html
  51. 51.
    Ryan, C.: Automatic Re-Engineering of Software using Genetic Programming. Kluwer Academic Publishers (1999). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/ryan_book.html
  52. 52.
    Katz, G., Peled, D.: Synthesizing, correcting and improving code, using model checking-based genetic programming. In: Bertacco, V., Legay, A. (eds.) HVC 2013. LNCS, vol. 8244, pp. 246–261. Springer, Heidelberg (2013). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/conf_hvc_KatzP13.html CrossRefGoogle Scholar
  53. 53.
    Cody-Kenny, B., Lopez, E.G., Barrett, S.: locoGP: improving performance by genetic programming java source code. In: GECCO 2015 Companion. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Cody-Kenny_2015_gi.html
  54. 54.
    Schulte, E., Dorn, J., Harding, S., Forrest, S., Weimer, W.: Post-compiler software optimization for reducing energy. In: ASPLOS 2014, pp. 639–652. ACM, Salt LakeCity, Utah, USA (2014). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/schulte2014optimization.html
  55. 55.
    Mrazek, V., Vasicek, Z., Sekanina, L.: Evolutionary approximation of software for embedded systems: median function. In: GECCO 2015 Companion. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Mrazek_2015_gi.html
  56. 56.
    Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. In: Wang, J., (ed.) WCCI 2008. IEEE, pp. 162–168 (2008). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Arcuri_2008_cec.html
  57. 57.
    Le Goues, C., Dewey-Vogt, M., Forrest, S., Weimer, W.: A systematic study of automated program repair: Fixing 55 out of 105 bugs for 8 each. In: Glinz, M., (ed.) ICSE 2012, pp. 3–13 Zurich (2012). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/LeGoues_2012_ICSE.html
  58. 58.
    Wilkerson, J.L., Tauritz, D.: Coevolutionary automated software correction. In: Branke, J., et al. (eds.) GECCO 2010, pp. 1391-1392. ACM, Portland, Oregon, USA (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Wilkerson_2010_gecco.html
  59. 59.
    Bradbury, J.S., Jalbert, K.: Automatic repair of concurrency bugs. In: Di Penta, M., et al. (eds.) SSBSE 2010, Benevento, Italy (2010) (Fast abstract). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/BradburyJ10.html
  60. 60.
    Ackling, T., Alexander, B., Grunert, I.: Evolving patches for software repair. In: Krasnogor, N., et al. (eds.) GECCO 2011, pp. 1427-1434. ACM, Dublin, Ireland (2011). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Ackling_2011_GECCO.html
  61. 61.
    Kessentini, M., Kessentini, W., Sahraoui, H., Boukadoum, M., Ouni, A.: Design defects detection and correction by example. In: ICPC 2011, pp. 81–90. IEEE, Kingston, Canada (2011). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Kessentini_2011_ICPC.html
  62. 62.
    Nguyen, H.D.T., Qi, D., Roychoudhury, A., Chandra, S.: SemFix: program repair via semantic analysis. In: Cheng, B.H.C., Pohl, K., (eds.) ICSE 2013, pp. 772–781. IEEE, San Francisco, USA (2013). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Nguyen_2013_ICSE.html
  63. 63.
    Kim, D., Nam, J., Song, J., Kim, S.: Automatic patch generation learned from human-written patches. In: ICSE 2013, pp. 802–811, San Francisco, USA (2013). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Kim_2013_ICSE.html
  64. 64.
    Tan, S.H., Roychoudhury, A.: relifix: Automated Repair of Software Regressions. In: Canfora, G., et al. (eds.) ICSE 2015, pp. 471–482. IEEE, Florence Italy (2015)Google Scholar
  65. 65.
    Schulte, E., DiLorenzo, J., Weimer, W., Forrest, S.: Automated repair of binary and assembly programs for cooperating embedded devices. In: ASPLOS 2013, pp. 317–328. ACM, Houston, Texas, USA (2013). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Schulte_2013_ARB_2451116_2451151.html
  66. 66.
    Yoo, S.: Evolving human competitive spectra-based fault localisation techniques. In: Fraser, G., Teixeira de Souza, J. (eds.) SSBSE 2012. LNCS, vol. 7515, pp. 244–258. Springer, Heidelberg (2012). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Yoo_2012_SSBSE.html CrossRefGoogle Scholar
  67. 67.
    Weimer, W.: advances in automated program repair and a call to arms. In: Ruhe, G., Zhang, Y. (eds.) SSBSE 2013. LNCS, vol. 8084, pp. 1–3. Springer, Heidelberg (2013). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Weimer_2013_SSBSE.html CrossRefGoogle Scholar
  68. 68.
    Cody-Kenny, B., Barrett, S.: The emergence of useful bias in self-focusing genetic programming for software optimisation. In: Ruhe, G., Zhang, Y. (eds.) SSBSE 2013. LNCS, vol. 8084, pp. 306–311. Springer, Heidelberg (2013). Graduate Student Track http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Cody-Kenny_2013_SSBSE.html CrossRefGoogle Scholar
  69. 69.
    Gabel, M., Su, Z.: A study of the uniqueness of source code. In: FSE 2010, pp. 147–156. ACM (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Gabel_2010_FSE.html
  70. 70.
    Darwin, C.: The Origin of Species. Penguin classics, 1985 edn. John Murray (1859)Google Scholar
  71. 71.
    Langdon, W.B., Harman, M.: Evolving a CUDA kernel from an nVidia template. In: Sobrevilla, P., (ed.) WCCI 2010, pp. 2376-2383. IEEE, Barcelona (2010). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2010_cigpu.html
  72. 72.
    Hutchins, M., Foster, H., Goradia, T., Ostrand, T.: Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria. In: ICSE 1994, pp. 191–200 (1994). urlhttp://dx.doi.org/10.1109/ICSE.1994.296778Google Scholar
  73. 73.
    Stam, J.: Stereo imaging with CUDA. Technical report, nVidia (2008)Google Scholar
  74. 74.
    Langdon, W.B., Harman, M.: Genetically improved CUDA C++ software. In: Nicolau, M., Krawiec, K., Heywood, M.I., Castelli, M., García-Sánchez, P., Merelo, J.J., Rivas Santos, V.M., Sim, K. (eds.) EuroGP 2014. LNCS, vol. 8599, pp. 87–99. Springer, Heidelberg (2014). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/langdon_2014_EuroGP.html Google Scholar
  75. 75.
    Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE Trans. EC 19(1), 118–135 (2015). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Langdon_2013_ieeeTEC.html Google Scholar
  76. 76.
    Klus, P., Lam, S., Lyberg, D., Cheung, M.S., Pullan, G., McFarlane, I., Yeo, G.S.H., Lam, B.Y.H.: BarraCUDA - a fast short read sequence aligner using graphics processing units. BMC Research Notes 5(1), 27 (2012). http://dx.doi.org/10.1186/1756-0500-5-27
  77. 77.
    Langdon, W.B., Lam, B.Y.H., Petke, J., Harman, M.: Improving CUDA DNA analysis software with genetic programming. In: GECCO 2015. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/Langdon_2015_GECCO.html
  78. 78.
    Langdon, W.B., Lam, B.Y.H.: Genetically improved barraCUDA. Research Note RN/15/03, Department of Computer Science, University College London (2015). http://arxiv.org/abs/arXiv:1505.07855
  79. 79.
    Modat, M., Ridgway, G.R., Taylor, Z.A., Lehmann, M., Barnes, J., Hawkes, D.J., Fox, N.C., Ourselin, S.: Fast free-form deformation using graphics processing units. Comput. Methods Programs Biomed. 98(3), 278–284 (2010). http://dx.doi.org/10.1016/j.cmpb.2009.09.002 CrossRefGoogle Scholar
  80. 80.
    Langdon, W.B., Modat, M., Petke, J., Harman, M.: Improving 3D medical image registration CUDA software with genetic programming. In: Igel, C., et al. (eds.) GECCO 2014, pp. 951-958. ACM, Vancouver, BC, Canada (2014). http://arxiv.org/abs/arXiv:1505.07855
  81. 81.
    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: Nicolau, M., Krawiec, K., Heywood, M.I., Castelli, M., García-Sánchez, P., Merelo, J.J., Rivas Santos, V.M., Sim, K. (eds.) EuroGP 2014. LNCS, vol. 8599, pp. 137–149. Springer, Heidelberg (2014). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Petke_2014_EuroGP.html Google Scholar
  82. 82.
    Harman, M., Jia, Y., Langdon, W.B.: Babel Pidgin: SBSE can grow and graft entirely new functionality into a real world system. In: Le Goues, C., Yoo, S. (eds.) SSBSE 2014. LNCS, vol. 8636, pp. 247–252. Springer, Heidelberg (2014). http://www.cs.bham.ac.uk/\(\sim \)wbl/biblio/gp-html/Harman_2014_Babel.html Google Scholar
  83. 83.
    Harman, M.: Software engineering meets evolutionary computation. Comput. 44(10), 31–39 (2011). Cover feature http://www.cs.bham.ac.uk/\(sim\)wbl/biblio/gp-html/Harman_2011_ieeeC.html CrossRefGoogle Scholar
  84. 84.
    Jia, Y., Harman, M., Langdon, W.B., Marginean, A.: Grow and serve: Growing Django citation services using SBSE. In: Yoo, S., Minku, L. (eds.) SSBSE 2015. Challenge Track, Bergamo, Italy (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/jia_2015_gsgp.html
  85. 85.
    Reeder, J., Steffen, P., Giegerich, R.: pknotsRG: RNA pseudoknot folding including near-optimal structures and sliding windows. Nucleic Acids Res. 35(Suppl. 2), W320–W324 (2007). http://dx.doi.org/10.1093/nar/gkm258 CrossRefGoogle Scholar
  86. 86.
    Langdon, W.B., Harman, M.: Grow and graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation. In: GECCO 2015 Companion. ACM, Madrid (2015). http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/langdon_2015_gi_pknots.html
  87. 87.
    Barr, E.T., Brun, Y., Devanbu, P., Harman, M., Sarro, F.: The plastic surgery hypothesis. In: Orso, A., et al. (eds.) FSE 2014. ACM, Hong Kong (2014). http://earlbarr.com/publications/psh.pdf

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.CREST, Department of Computer ScienceUniversity College LondonLondonUK

Personalised recommendations