  The problem of automatic software generation is known as Machine Programming.
In this work, we propose a framework based on genetic algorithms to solve this
problem. Although genetic algorithms have been used successfully for many
problems, one criticism is that hand-crafting its fitness function, the test
that aims to effectively guide its evolution, can be notably challenging. Our
framework presents a novel approach to learn the fitness function using neural
networks to predict values of ideal fitness functions. We also augment the
evolutionary process with a minimally intrusive search heuristic. This
heuristic improves the framework's ability to discover correct programs from
ones that are approximately correct and does so with negligible computational
overhead. We compare our approach with several state-of-the-art program
synthesis methods and demonstrate that it finds more correct programs with
fewer candidate program generations.
