It’s all in the Semantics: When are Genetically Improved Programs Still Correct?
Genetic improvement (GI) is a powerful technique to automatically optimize programs, often for non-functional properties. As such, we expect to retain the original program semantics, hence GI is guided by both a functional test suite and at least one other objective such as program efficiency, memory usage, energy efficiency, etc. An assumption made is that it is possible to improve a program’s non-functional objective while retaining the program’s correctness, however, this assumption may not hold for all types of non-functional properties. In this talk I show why GI is naturally a multi-objective optimization problem and argue that it may be necessary to relax part of the program correctness to satisfy our non-functional goals. I discuss a few recent examples where we have had to balance functional correctness and non-functional objectives and demonstrate how this may lead to programs that are of higher quality in the end. This raises an important question about when it is possible to completely satisfy multiple (potentially competing) program objectives during GI, and when it is semantically impossible. This leads to the ultimate question of what it means for a program to be correct when using GI.
Sat 20 MayDisplayed time zone: Hobart change
09:00 - 10:30 | |||
09:00 15mDay opening | Welcome & Introductions GI | ||
09:15 75mKeynote | It’s all in the Semantics: When are Genetically Improved Programs Still Correct? GI Myra Cohen Iowa State University |