Abstract
Trying all simple changes (first order mutations) to executed C, C++ and CUDA source code shows software engineering artefacts are more robust than is often assumed. Of those that compile, up to 89 % run without error. Indeed a few mutants are improvements. Program fitness landscapes are smoother. Analysis of these programs, a parallel nVidia GPGPU kernel, all CUDA samples and the GNU C library shows many lines of code and integer values are repeated and may follow Zipf’s law.
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
Langdon WB (forthcoming) Genetically improved software. In: Gandomi AH, Alavi AH, Ryan C (eds) Handbook of genetic programming applications. Springer, Cham
Langdon WB (2015) Genetic improvement of software for multiple objectives. In: Labiche Y, Barros M (eds) SSBSE, Bergamo, Italy. LNCS, vol 9275. Springer, Cham, pp 12–28; Invited keynote
Langdon WB, Petke J, White DR (2015) Genetic improvement 2015 chairs’ welcome. In: Langdon WB, Petke J, White DR (eds) Genetic improvement 2015 workshop, Madrid. ACM, New York, pp 791–792
Harman M, Jones BF (2001) Search based software engineering. Inf Softw Technol 43(14):833–839
Holland JH (1992) Adaptation in natural and artificial systems: an introductory analysis with applications to biology, control and artificial intelligence. MIT Press, Cambridge; First Published by University of Michigan Press (1975)
Poli R, Langdon WB, McPhee NF (2008) A field guide to genetic programming. Published via http://lulu.com and freely available at http://www.gp-field-guide.org.uk (With contributions by J.R. Koza)
Beyer HG, Langdon W (eds) (2011) Foundations of genetic algorithms, Schwarzenberg, Austria. ACM, New York
Langdon WB, Poli R (2002) Foundations of genetic programming. Springer, Berlin
Louridas P, Spinellis D, Vlachos V (2008) Power laws in software. ACM Trans Softw Eng Methodol 18(1):2:1–2:26
Zipf GK (1949) Human behavior and the principle of least effort: an introduction to human ecology. Addison-Wesley Press Inc., Cambridge
Langdon WB, Harman M, Jia Y (2010) Efficient multi-objective higher order mutation testing with genetic programming. J Syst Softw 83(12):2416–2430
Yao X, Harman M, Jia Y (2014) A study of equivalent and stubborn mutation operators using human analysis of equivalence. In: Proceedings of the 36th international conference on software engineering, ICSE 2014, Hyderabad. ACM, New York, pp 919–930
Li H, Durbin R (2010) Fast and accurate long-read alignment with Burrows-Wheeler transform. Bioinformatics 26(5):589–595
Langdon WB, Harman M (2015) Optimising existing software with genetic programming. IEEE Trans Evol Comput 19(1):118–135
Stam J (2008) Stereo imaging with CUDA. Technical Report, nVidia
Langdon WB, Harman M (2014) Genetically improved CUDA C++ software. In: Nicolau M, Krawiec K, Heywood MI, Castelli M, Garcia-Sanchez P, Merelo JJ, Rivas Santos VM, Sim K (eds) 17th European conference on genetic programming, Granada, Spain. LNCS, vol 8599. Springer, Berlin, pp 87–99
Owens JD, Houston M, Luebke D, Green S, Stone JE, Phillips JC (2008) GPU computing. Proc IEEE 96(5):879–899; Invited paper
Langmead B, Salzberg SL (2012) Fast gapped-read alignment with Bowtie 2. Nat Methods 9(4):357–359
Langdon WB (2014) Genetic improvement of programs. In: Winkler F, Negru V, Ida T, Jebelean T, Petcu D, Watt S, Zaharie D (eds) 16th international symposium on symbolic and numeric algorithms for scientific computing (SYNASC 2014), Timisoara. IEEE, New York, pp 14–19; Keynote
Koza JR (1992) Genetic programming: on the programming of computers by natural selection. MIT Press, Cambridge
Daida JM, Bertram RR, Stanhope SA, Khoo JC, Chaudhary SA, Chaudhri OA, Polito II JA (2001) What makes a problem GP-hard? Analysis of a tunably difficult problem in genetic programming. Genet Program Evolvable Mach 2(2):165–191
Langdon WB (1998) Genetic programming and data structures: genetic programming + data structures = automatic programming!. Genetic programming, vol 1. Kluwer, Boston
Langdon WB, Harman M (2010) Evolving a CUDA Kernel from an nVidia template. In: Sobrevilla P (ed) 2010 IEEE world congress on computational intelligence, Barcelona. IEEE, New York, pp 2376–2383
Langdon WB, Modat M, Petke J, Harman M (2014) Improving 3D medical image registration CUDA software with genetic programming. In: Igel C, Arnold DV, Gagne C, Popovici E, Auger A, Bacardit J, Brockhoff D, Cagnoni S, Deb K, Doerr B, Foster J, Glasmachers T, Hart E, Heywood MI, Iba H, Jacob C. Jansen T, Jin Y, Kessentini M, Knowles JD, Langdon WB, Larranaga P, Luke S, Luque G, McCall JAW, Montes de Oca MA, Motsinger-Reif A, Ong YS, Palmer M, Parsopoulos KE, Raidl G, Risi S, Ruhe G, Schaul T, Schmickl T, Sendhoff B, Stanley KO, Stuetzle T, Thierens D, Togelius J, Witt C, Zarges C (eds) GECCO ’14: proceeding of the sixteenth annual conference on genetic and evolutionary computation conference, Vancouver, BC. ACM, New York, pp 951–958
Langdon WB, Lam BYH, Petke J, Harman M (2015) Improving CUDA DNA analysis software with genetic programming. In: Silva S, Esparcia-Alcazar AI, Lopez-Ibanez M, Mostaghim S, Timmis J, Zarges C, Correia L, Soule T, Giacobini M, Urbanowicz R, Akimoto Y, Glasmachers T, Fernandez de Vega F, Hoover A, Larranaga P, Soto M, Cotta C, Pereira FB, Handl J, Koutnik J, Gaspar-Cunha A, Trautmann H, Mouret JB, Risi S, Costa E, Schuetze O, Krawiec K, Moraglio A, Miller JF, Widera P, Cagnoni S, Merelo J, Hart E, Trujillo L, Kessentini M, Ochoa G, Chicano F, Doerr C (eds) GECCO ’15: proceedings of the 2015 on genetic and evolutionary computation conference, Madrid. ACM, New York, pp 1063–1070
Langdon WB, Harman M (2015) Grow and graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation. In: Langdon WB, Petke J, White DR (eds) Genetic improvement 2015 workshop, Madrid. ACM, New York, pp 805–810
Fraser G, Arcuri A (2011) Evosuite: automatic test suite generation for object-oriented software. In: 8th European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering (ESEC/FSE ’11). ACM, New York, pp 416–419
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing Switzerland
About this paper
Cite this paper
Langdon, W.B., Petke, J. (2017). Software is Not Fragile. In: Bourgine, P., Collet, P., Parrend, P. (eds) First Complex Systems Digital Campus World E-Conference 2015. Springer Proceedings in Complexity. Springer, Cham. https://doi.org/10.1007/978-3-319-45901-1_24
Download citation
DOI: https://doi.org/10.1007/978-3-319-45901-1_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-45900-4
Online ISBN: 978-3-319-45901-1
eBook Packages: Physics and AstronomyPhysics and Astronomy (R0)