A new system developed at MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL) can repair bugs in software using smart processing that imports functionality from other programs, all without access to source code.
Like in all computer programming, removing software bugs that can cause system or application crashes has traditionally been a matter of finding the offending source code and rewriting it; every time you get updates to your operating system or applications, you're actually downloading tools that rewrite source code on your system to patch vulnerabilities the developers have identified.
But the CSAIL system, called CodePhage, takes a very different approach. It borrows functionality from other applications to import into the offending process that causes a crash, assessing how certain tasks are executed and analysing how they do their own security checks to protect from vulnerabilities.
Research scientist Dr Stelios Sidiroglou-Douskos, who led CodePhage's development, describes it as trying to isolate the logic that protects the donor application.
"[It] creates an application-independent representation, and then rewrites that into the name space of the recipient," he says.
The process builds a library of checks the offending program should perform based on how the recipient program behaves, automatically writing them to the recipient program's functions.
Most impressively of all, CodePhage does the above all without having to access the source code of either application, letting it make repairs between applications written in different programming languages.
It merely needs an input that causes the program to crash and one that doesn't, automatically applying the behaviour of the one that doesn't until the offending process is removed from the program.
Sidiroglou-Douskos says it's a little like horizontal gene transfer, the theoretical method of synthesising DNA strands to insert into damaged chromosomes, a technology that makes transposing genes between unrelated organisms possible.This seems pretty cool. And may make human coders' lives a little easier...in the short term...till they are automated out of existence altogether.
But can't go into that without being accused of being a Luddite, or a Saboteur (if we bother to note the original meanings of such terms). One might note, if one bothered, that those who make the arguments that human ingenuity will always prevail over all obstacles, man-made or otherwise, tend to be those (or the lucky descendants of those) who happened to survive and profit even if all their siblings and cousins died, no doubt due to some sort of moral failing on their part. Not that's it's an evolutionary process, because that would undercut religious belief and their sense in their own inherent rightness. Carry on, future inheritors of Wasteland Earth.
No comments:
Post a Comment