Program synthesis: challenges and opportunities. (4th September 2017)