91av

Your wish is my machine code

WRITING software is a painstaking business in which you can’t afford to slip
up: get a single character wrong and the instructions either do nothing or go
horribly wrong. In one infamous software error, a misplaced minus sign resulted
in a fighter jet’s control system flipping the aircraft on its back whenever it
crossed the equator.

Now a new system that takes the drudgery—and some of the potential for
slip-ups—out of programming is about to be launched. Its inventor hopes it
will one day turn us all into programmers.

Bob Brennan, a software engineer at Cambridge-based start-up Synapse
Solutions, has developed a piece of software that allows you to write a program
by keying in what you want it to do in everyday language.

Dubbed MI-Tech—short for machine intelligence technology—the
software translates a typed wish list into machine code, the basic mathematical
language understood by the microprocessors inside computers. But this is no easy
task, because everyday language is riddled with ambiguities and double meanings.
“MI-Tech can resolve these ambiguities,” claims Brennan, because it has been
taught about the significance of context in the English language.

At the heart of MI-Tech is a store of logical rules. These allow it to
extract instructions from statements in ordinary language, which it then
translates into machine code. In its present form, MI-Tech has a limited lexicon
of only a few hundred words, but Brennan claims this is sufficient for most of
the tasks you might ask it to carry out.

Brennan says his program can write code in a fraction of the time that it
takes trained programmers. He spent months writing a program manually, producing
hundreds of pages of code. But given “just three pages of monologue”, MI-Tech
generated a program that performed exactly the same tasks.

Vikram Adve, a programming-language researcher at the University of Illinois
at Urbana-Champaign remains sceptical. “Every programming language that I have
heard of has a well-defined syntax and well- defined semantics,” he says. And
for a very good reason: all programming languages operate on instruction
compilers and hardware that are essentially dumb. “Neither can really interpret
the intention of the programmer,” says Adve. So programming languages are
deliberately designed to be unambiguous to avoid confusion.

Brennan agrees that previously this required strict syntax. “The problem
before was that computers couldn’t cope with ambiguities, but now they can,” he
says. MI-Tech’s small lexicon means there is less room for confusion. And if
it’s unsure of your meaning, MI-Tech will just say it doesn’t understand.

Brennan is not going into any detail about how the system works until his
patents are granted. But he hopes to be licensing his program to software
companies within 18 months so that they can build it into their own packages. If
that happens, you might well be able to add programs of your own design to your
PC—without knowing how to code.

More from 91av

Explore the latest news, articles and features