Natural Language Programming
|
Natural Language Programming |
 |
Announcing an automated programming system that will "understand" plain English. Also, learn more about similar NLP products available today.
 |
|
|
 |
 |
 |
|
Elsewhere on the Web
|
Natural Language Computing
Using Natural Language in Software Development
Programming Futures
|
|
 |
| |
|
Frequent changes in programming languages, development environments and related tools are one of the constants in the life of software engineers. Even when you master almost every detail, the probability for potential slip-ups is very high: just one misplaced character caused havoc in a prototype of the F-16 fighter jet, while a logical error in converting values between English and metric units recently caused an interplanetary probe to crash. Going back to the early days of software enginnering, we heard many promises about English-like programming languages that could take the drudgery out of the programming process. Several rule-based expert system development environments described a few years ago brought the productivity gains coming from the use of rule-based abstractions and English-like constructs. Unfortunately, it was not enough: just a few of them survived tough market conditions. Now a small Cambridge, UK-based startup announces new technology that can "understand" plain English and turn it directly into machine code. While it may be a hoax, as there are no real world, working examples, I thought that such courageous approach deserves a bit of public attention.
Synapse Solutions Ltd. is developing MI-Tech (short for Machine Intelligence Technology), a system based on the fact that all logic can be expressed unambiguously in natural language. The main difference between MI-Tech and modern methods for producing computer applications is that MI-Tech doesn't require a preprogrammed sequence for every possible combination of input the program could encounter. example control script for a roller transport machine: it is easily understood and easily maintainable. But is it to good to be true? The list of future products and an interactive demonstration offer more details and descriptions of the expected functionality. According to the managing director, Bob Brennan, MI-Tech will essentially let you enter list of commands in plain English and translate it to the standard Windows GUI application. The software will even learn from the interaction with users, getting "smarter" over time. It will concentrate on using a dynamic conversation context to cope with language ambiguities, synonyms, spelling errors, and similar problems. MI-Tech's lexicon is currently limited to a few hundred words, but Brennan claims it is enough for constructing rather advanced applications.
Unfortunately, no technical details are available at this time and all related patents are pending. This fact leaves too much space for speculation, and most of the experts are not too happy with this approach. All programming languages are deliberately designed to be unambiguous to avoid confusion. I'll quote one of the greatest computer scientists of all times, Edsger Dijkstra, from his essay "How do we tell truths that might hurt?": Projects promoting programming in "natural language" are intrinsically doomed to fail.. Well, continuing in the same semi-humorous tone, he also said that ...the use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense. Disregarding the both "truths", Brennan anticipated the same type of skepticism that was addressed to microprocessor technology some 25 years ago. "It can't handle complex designs", "it won't be able to resolve ambiguities", "it will be too slow"... He states that these arguments sound silly in retrospect to what we now know technology can do - but they will be resurrected again in doubt of a new software technology, and will sound silly again in the future.
Going back to more realistic examples of natural language processing, I already described a few software packages that fall into this category, including VerbalOS and Brainhat. Apart from expert system development environments mentioned above, an older article on natural language interfaces for SQL developers will provide you with enough material for further research in this area.