Augmented Programming
Traditionally, software development infrastructure leverages heuristics or arbitrary decisions to optimize performance. However, research is increasingly identifying areas where machine learning can help achieve better-than-human performance in the software domain. In the development of software code, potential machine learning applications include neural program synthesis (where code is generated automatically) or neural decompilation. During the build process, machine learning can be used to automatically optimize code or to perform fuzz testing, an automated testing approach to identify program exceptions like crashes or memory leaks. And finally, once code has been deployed, machine learning can be used for automated trace debugging and/or configuration management.
