In another phase of the program, Fisher is bankrolling research into software that can write near-flawless code on its own. The idea is to give the software synthesizer a set of instructions about what a particular program is supposed to do, and then let it come up with the best code for that purpose. Software that writes more software may sound crazy, Fisher says. But Darpa actually has some history of doing it.
“There was a project led here at Darpa a few years ago [to write software for] synthetic aperture radar. They had a non-expert specify [what should go into a synthetic aperture] radar program,” Fisher adds. “It took the system about 24 hours to produce an implementation…instead of three months [for the traditional version] and it ran twice as fast. So — better, faster and a lower level of expertise. We hope to see things like that.”
You couldn’t ask a program to write the equivalent of PowerPoint — it does too many different things. “By the time you’ve finished the specifications, you might as well have written the implementation,” Fisher says. But the software that controls drones and the like? Ironically, that’s way more straight-forward. ”The control theory about how you do things with breaks and steering wheels, how you take sensor input and convert it to actions is described by very concise laws of mathematics.” So synthesized (and secure) software should be possible to produce.