Your submission is now in Draft mode.

Once it's ready, please submit your draft for review by our team of Community Moderators. Thank you!

Submit Essay

Once you submit your essay, you can no longer edit it.

Pending

This content now needs to be approved by community moderators.

Submitted

This essay was submitted and is waiting for review.

When will programs write programs for us?

Question

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:

How long until a machine-learning system can take a simple text description and turn it into a program coded in C/Python?

As a concrete challenge, we'll ask that in 2 of 5 trials, the system can take the specification of a simple program from a list comparable to the first two sections of this one, and output an executable C or Python code that does the assigned task. To avoid making this mostly about language parsing, the plaintext specification can be "translated" by a human operator into a plaintext description of lesser length prior to input into the ML system, so that the system functions something like a very high-level programming language. (This still leaves a major challenge of a system that turns the specification into a task for which the neural network can be trained.)

The existence of such a system will be determined by actual demonstration, OR by agreement by two experts in the field that a comparably capable system exists.

Make a Prediction

Prediction

Note: this question resolved before its original close time. All of your predictions came after the resolution, so you did not gain (or lose) any points for it.

Note: this question resolved before its original close time. You earned points up until the question resolution, but not afterwards.

Current points depend on your prediction, the community's prediction, and the result. Your total earned points are averaged over the lifetime of the question, so predict early to get as many points as possible! See the FAQ.