WRITING software is a painstaking business in which you can鈥檛 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鈥檚 control system flipping the aircraft on its back whenever it
crossed the equator.
Now a new system that takes the drudgery鈥攁nd some of the potential for
slip-ups鈥攐ut 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.
Advertisement
Dubbed MI-Tech鈥攕hort for machine intelligence technology鈥攖he
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.
鈥淢I-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 鈥渏ust 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. 鈥淓very 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. 鈥淣either 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. 鈥淭he problem
before was that computers couldn鈥檛 cope with ambiguities, but now they can,鈥 he
says. MI-Tech鈥檚 small lexicon means there is less room for confusion. And if
it鈥檚 unsure of your meaning, MI-Tech will just say it doesn鈥檛 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鈥攚ithout knowing how to code.