Automated Transplantation of Call Graph and Layout Features into Kate

  • Alexandru MargineanEmail author
  • Earl T. Barr
  • Mark Harman
  • Yue Jia
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9275)


We report the automated transplantation of two features currently missing from Kate: call graph generation and automatic layout for C programs, which have been requested by users on the Kate development forum. Our approach uses a lightweight annotation system with Search Based techniques augmented by static analysis for automated transplantation. The results are promising: on average, our tool requires 101 min of standard desktop machine time to transplant the call graph feature, and 31 min to transplant the layout feature. We repeated each experiment 20 times and validated the resulting transplants using unit, regression and acceptance test suites. In 34 of 40 experiments conducted our search-based autotransplantation tool, \(\mu \)Scalpel, was able to successfully transplant the new functionality, passing all tests.


  1. 1.
    Barr, E.T., Harman, M., Jia, Y., Marginean, A., Petke, J.: \(\mu \)SCALPEL (2014).
  2. 2.
    Barr, E.T., Harman, M., Jia, Y., Marginean, A., Petke, J.: Automated software transplantation. In: ISSTA (2015, to appear)Google Scholar
  3. 3.
    Bruce, B., Petke, J., Harman, M.: Reducing energy consumption using genetic improvement. In: GECCO 2015 (2015)Google Scholar
  4. 4.
    Cadar, C., Sen, K.: Symbolic execution for software testing: three decades later. CACM 56(2), 82–90 (2013)CrossRefGoogle Scholar
  5. 5.
    Harman, M., Jia, Y., Zhang, Y.: Achievements, open problems and challenges for search based software testing (keynote). In: ICST (2015)Google Scholar
  6. 6.
    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) Google Scholar
  7. 7.
    Harman, M., Langdon, W.B., Weimer, W.: Genetic programming for reverse engineering (keynote paper). In: WCRE (2013)Google Scholar
  8. 8.
    Langdon, W.B., Harman, M.: Evolving a CUDA kernel from an nVidia template. In: IEEE CEC (2010)Google Scholar
  9. 9.
    Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. TEVC 19(1), 118–135 (2015)Google Scholar
  10. 10.
    Le Goues, C., Forrest, S., Weimer, W.: Current challenges in automatic software repair. SQJ 21(3), 421–443 (2013)Google Scholar
  11. 11.
    Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Using genetic improvement & code transplants to specialise a C++ program to a problem class. In: EuroGP (2014)Google Scholar
  12. 12.
    Poli, R., Langdon, W.B., McPhee, N.F.: A field guide to genetic programming (2008). published via and freely available at
  13. 13.
    Schulte, E., Dorn, J., Harding, S., Forrest, S., Weimer, W.: Post-compiler software optimization for reducing energy. In: ASPLOS, pp. 639–652 (2014)Google Scholar
  14. 14.
    Sidiroglou-Douskos, S., Misailovic, S., Hoffmann, H., Rinard, M.C.: Managing performance vs. accuracy trade-offs with loop perforation. In: FSE, pp. 124–134 (2011)Google Scholar
  15. 15.
    Sitthi-amorn, P., Modly, N., Weimer, W., Lawrence, J.: Genetic programming for shader simplification. ACM TOG 30(6), 152:1–152:11 (2011)CrossRefGoogle Scholar
  16. 16.
    Wu, F., Harman, M., Jia, Y., Krinke, J., Weimer, W.: Deep parameter optimisation. In: GECCO 2015 (2015)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Alexandru Marginean
    • 1
    Email author
  • Earl T. Barr
    • 1
  • Mark Harman
    • 1
  • Yue Jia
    • 1
  1. 1.Department of Computer Science, CREST CentreUCLLondonUK

Personalised recommendations