Since the early days of "machine code" programming using a very limited instruction set, more and more high-level programming languages have been developed that layer atop this fundamental level. It is common, for example, have a Python script that calls a routine written in C and compiled into machine code. Other languages (like Mathematica) are even higher-level. Still, even a high-level language requires unambiguous specification of the steps required for the task at hand.
It would be much nicer to specify the desired task rather than exactly how to do it, i.e. to have systems that can write programs to specification. Such systems have had limited success so far, but there are signs of significant progress. This recent review, for example, mentions new efforts to "induce" programs from a large set of input-output pairs. A paper by Neelakantan, Le, and Sutskever, for instance, introduce a "Neural Programmer," which augments a neural network with a set of basic operations that the network can be trained to use to solve a task; they showed success in training the network to reproduce the action of a set of simple programs.
While machine learning (ML) systems like the Neural Programmer don't quite output (say) Python programs written to some specification, they do create a program to accomplish a particular task. Given a system to translate a specification into a trainable task, and to translate the Neural Programmer's instruction list into a typical language, this may not be that far away, at least for simple programming tasks. So we ask: