At some point in the future, human programmers will no longer manually create computer software, says Lee Spector. Instead, software will learn and evolve, following processes similar to those of biological learning and evolution. A $423,000 grant awarded to Spector by the National Science Foundation will move that long-term goal forward.
"In the future, programs won't be things that people sit down and write, but rather things that grow and evolve in much more organic ways," says the Hampshire College computer science professor. "As a result, we're going to have much more complex and rich and robust software that can handle unexpected situations better."
Professor Lee Spector
Professor Spector has received numerous grants and awards in the past for his work in evolutionary computing and genetic programming, and is editor-in-chief of the journal Genetic Programming and Evolvable Machines.
The new NSF grant will support his work over the next three years as he attempts, with the assistance of two University of Massachusetts Amherst doctoral students and two Hampshire undergraduates, to evolve "robust" software.
"Evolution is the source of robustness in nature," Spector says. "Robust intelligence is capable but also flexible. Nature produces animals and plants through this very powerful process of evolution, combining random variation and selection of the fittest to build things of startling complexity. When unexpected variations in the environment occur, they adapt instead of failing."
In comparison, software produced, as it is now, by hand by human beings, line by line, tends to be brittle and not able to adapt to changing circumstances.
WFCR interview with Professor Spector
Software that Can Adapt
"We can only get so far. We can only build software for things that we understand well enough to write it," says Spector. "It takes a lot of time and effort for human programmers, and the way we do it produces systems that tend to crash if something goes wrong. In comparison, the products of nature can face minor injury and go forward. Evolution can figure out things we can't do now."
By applying the principles of evolution to specific computational challenges, Spector hopes to move us closer to more robust software that will be better able to handle changing circumstances. He will attempt to evolve two types of programs, using them to explore the core ideas of the project, rather than seeking a particular product.
The first test case will be a simple productivity software application, such as an address book, that requires different types of data and different uses for data. The second, a time-variant game, will be much more complex. One model he is thinking of using is an economics game, based on computerized games that exist and replicate stock market day trading. Whatever the game is, it will have changing circumstances, getting input from many sources and making decisions of many kinds as the software evolves.
Professor Spector understands and acknowledges that trust in an evolving program raises a complicated set of issues.
"There are definitely things to think about in terms of the appropriate use of this technology," he says, "but the alternatives we have aren't any better and they may be worse. You have to compare it against trusting today's programs, which can break catastrophically, and in which society already places too much trust. Evolution should be able to produce programs that are more, rather than less, trustworthy, but the issue of reliance on software that can fail is a bigger issue that we need to address for all software."
Hampshire students will also benefit from Spector's research grant. In addition to the students who will work directly on the project, many others enrolled in his courses will be able to pursue their own independent projects that use and extend software produced by the research.