“…GI is often applied to non-functional properties of software but perhaps it is most famous for improving program's functionality, e.g. by removing bugs [8,9,10,11,12,13,14,15,16] or adding to its abilities [17,18,19,20,21,22]. Non-functional improvements that have been considered or results reported include: faster code [23,24], code which uses less energy [25,26,27,28,29,30,31,32,33,34] or less memory [35], and automatic parallelisation [36,37,38] and automatic porting [39] and embedded systems [40,41,25,42,43,44,45] as well as refactorisation [46], reverse engineering [47,48] and software product lines [49,50].…”