Roland Piquepaille's Technology Trends
How new technologies are modifying our way of life

 
Web www.primidi.com



jeudi 24 mars 2005
 

Hugo Liu, a researcher at the MIT, thinks about using English as a programming language because it is much more concise than any traditional programming language, and eliminates the need to learn one in the first place. In "Tool turns English to code," Technology Review writes that Liu and his colleague have written an English-to-code visualizer named Metafor. You type a story in plain English in one panel of the tool. In other panels, you can see the outputs of the parser and the debugger. Finally the fourth panel contains your story rendered as code -- or the program "skeleton." Here is an example taken from Liu's research. 'If I said, "Look in the bin and pick out just the red apples," that's the equivalent of programming: "map(Pick, filter(lambda apple: apple.color == red, bin.getApples()))."' Read more...

Here is the introduction of the Technology Review article.

Writing software has been relatively difficult since people began programming computers in the mid-1900s. Although programming a computer is eminently useful -- it gives you fine control of a powerful tool -- it requires learning a programming language.
Researchers from the Massachusetts Institute of Technology are aiming to remove this requirement. They have taken a step toward that goal with a language-to-code visualizer dubbed Metafor.
The visualizer uses natural language instructions to sketch the outlines of a program. It can be used as a programming learning tool and to provide rough drafts of programming projects, and could lead to more complete programming-by-natural-language methods.
The 4 areas of the Metafor tool

The illustration above shows you how the different panels of Metafor.

But how does this work?

The basic logic of the program Pacman, for instance, is revealed by talking about how it works, said Liu. "The basic ingredients for the program are there -- the noun phrases are objects, the verbs are functions, [and] the adjectives are object properties."
Metafor translates the description "Pacman is a character who eats dots" into a "Pacman object" that is a member of and can share traits, or functions, with a "character superclass" and has a character superclass member function of "eat dots", said Liu.

Please read the full article for more details, but note that Metafor can 'translate' an English story in several programming languages, including Python, Lisp and Java.

But what can you do with such a tool?

The first goal is to help students to learn programming. This method could also be used as a programming teaching tool for kids or enhanced storytelling within three years.

For more information, you can read this technical paper, "Metafor: Visualizing Stories as Code" (PDF format, 3 pages, 723 KB), or this presentation, "english: the lightest weight programming language of them all" (PDF format, 22 slides, 2.34 MB). The illustration above comes from this presentation.

You also can watch this animated demo (QuickTime format, size unknown).

Sources: Kimberly Patch, Technology Research News, March 23/30, 2005; and various pages at MIT

Related stories can be found in the following categories.


7:46:43 PM   Permalink        


Click here to visit the Radio UserLand website. © Copyright 2007 Roland Piquepaille.
Last update: 25/03/2007; 10:57:01.


March 2005
Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Feb   Apr


Personal Links



Other Links

Ars Technica
Bloglines
Daily Rotation News
Dave Winer
DefenseTech
del.icio.us
Engadget
Feedster
Gizmodo
John Robb
Jon Udell
OhGizmo!
OhPurleese
PictureCorrect
Robots.net
Slashdot
Smart Mobs
Technorati
WorldChanging
ZDNet Blogs


Drop me a note via Radio
Click here to send an email to the editor of this weblog.

E-mail me directly at
pique@noos.fr

RSS subscription for Radio users
Subscribe to "Roland Piquepaille's Technology Trends" in Radio UserLand.

RSS feed for others
Click to see the XML version of this web page.