Skip to main content

Software is Not Fragile

  • Conference paper
  • First Online:

Part of the book series: Springer Proceedings in Complexity ((SPCOM))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Langdon WB (forthcoming) Genetically improved software. In: Gandomi AH, Alavi AH, Ryan C (eds) Handbook of genetic programming applications. Springer, Cham

    Google Scholar 

  2. 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

    Google Scholar 

  3. 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

    Google Scholar 

  4. Harman M, Jones BF (2001) Search based software engineering. Inf Softw Technol 43(14):833–839

    Article  Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

  7. Beyer HG, Langdon W (eds) (2011) Foundations of genetic algorithms, Schwarzenberg, Austria. ACM, New York

    Google Scholar 

  8. Langdon WB, Poli R (2002) Foundations of genetic programming. Springer, Berlin

    Book  MATH  Google Scholar 

  9. Louridas P, Spinellis D, Vlachos V (2008) Power laws in software. ACM Trans Softw Eng Methodol 18(1):2:1–2:26

  10. Zipf GK (1949) Human behavior and the principle of least effort: an introduction to human ecology. Addison-Wesley Press Inc., Cambridge

    Google Scholar 

  11. Langdon WB, Harman M, Jia Y (2010) Efficient multi-objective higher order mutation testing with genetic programming. J Syst Softw 83(12):2416–2430

    Article  Google Scholar 

  12. 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

    Google Scholar 

  13. Li H, Durbin R (2010) Fast and accurate long-read alignment with Burrows-Wheeler transform. Bioinformatics 26(5):589–595

    Article  Google Scholar 

  14. Langdon WB, Harman M (2015) Optimising existing software with genetic programming. IEEE Trans Evol Comput 19(1):118–135

    Article  Google Scholar 

  15. Stam J (2008) Stereo imaging with CUDA. Technical Report, nVidia

    Google Scholar 

  16. 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

    Google Scholar 

  17. Owens JD, Houston M, Luebke D, Green S, Stone JE, Phillips JC (2008) GPU computing. Proc IEEE 96(5):879–899; Invited paper

  18. Langmead B, Salzberg SL (2012) Fast gapped-read alignment with Bowtie 2. Nat Methods 9(4):357–359

    Article  Google Scholar 

  19. 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

    Google Scholar 

  20. Koza JR (1992) Genetic programming: on the programming of computers by natural selection. MIT Press, Cambridge

    MATH  Google Scholar 

  21. 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

    Article  MATH  Google Scholar 

  22. Langdon WB (1998) Genetic programming and data structures: genetic programming + data structures = automatic programming!. Genetic programming, vol 1. Kluwer, Boston

    Google Scholar 

  23. 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

    Google Scholar 

  24. 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

    Google Scholar 

  25. 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

    Google Scholar 

  26. 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

    Google Scholar 

  27. 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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to William B. Langdon .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics