English To Code Converter 56
prostoalex writes "Metafor from MIT is a code visualization utility, capable of converting high-level descriptions into class and function (or method, depending on which camp you're in) definitions. According to the screenshot, it looks like Metafor tries to figure out the components of the software application, defines classes, deduce actions, and generates some function (method) signatures. A PDF document by researchers is available from MIT: "We explore the idea of using descriptions in a natural language as a representation for programs. While we cannot yet convert arbi-trary English to fully specified code, we can use a reasonably expressive subset of English as a visualization tool. Simple descriptions of program objects and their behavior generate scaffolding (underspecified) code fragments, that can be used as feedback for the designer. Roughly speaking, noun phrases can be interpreted as program objects; verbs can be functions, adjectives can be properties. A surprising amount of what we call programmatic semantics can be inferred from linguistic structure. We present a program editor, Metafor, that dynamically converts a user's stories into program code, and in a user study, participants found it useful as a brainstorming tool." There's also an article about it on ACM."
Add this to the list... (Score:3, Funny)
"Shoot yourself in the foot."
Re:Add this to the list... (Score:2, Funny)
Finally... (Score:1)
uh oh... (Score:2)
"you f-ckin' piece of sh-t! Work right or I'm gonna throw you in the d-mn river!"
"syntax error."
MIT (Score:2)
I was worried that today would pass without a reference, but here it is...
Re:MIT (Score:1)
Re:MIT (Score:2)
My zip code is 02139.
Exactly what I was thinking. (Score:1)
Hey, wow... (Score:5, Funny)
Re:Hey, wow... (Score:1)
Natural language inherently ambiguous (Score:5, Insightful)
Programming languages grew out of a neccesity to have something that was easy to remember (by virtue of its similarities to english), yet still precise enough for the computer to interpret. At a certain point you still need to define a vocabulary with consistent semantics to be applied to programming concepts.
Whether or not that vocabulary is very rich and sounds almost like spoken english, it all goes out the window when a phrase is used by the speaker in a different meaning than the system had in mind.
There is a good reason that mathematics has its own language. In fact, any specialised are has its own jargon, even its not technical. General purpose English is just too vague to use in some domains.
AI problems always seem to be perpetualy 'a decade' in the future.
Re:Natural language inherently ambiguous (Score:1)
Re:Natural language inherently ambiguous (Score:2)
"need program to handle customer tracking, should use Java,ASP.NET, and [some random non-existand acronym the boss just made up]. Program should also manage inventory, billing, and must integrate with programs X,Y and Z. Please have it done by the day after tomorrow."
Bringing programming to the masses? (Score:2, Funny)
(15 yr old male during peak of puberty)
"Computer, write me a program that downloads all the pr0n on the internet to the my PC!!!!111one"
(80 yr old male, retired and bored out of his mind)
"Noisy hunk of crap on the floor, send every naked picture of every woman ever to my printer! Oh wait, make sure they are 19 or younger too!!! Keh keh keh!"
*ponder* (Score:2)
program, i can! (Score:3, Funny)
class You:
look = as_good
def reach(years):
if( years = 900 ):
self.look = not as_good
Re:program, i can! (Score:2)
if (no sunlight)
post slashdot
plus sig
else if (sunlight)
post slashdot
plus sig
plus lemonade
close
Intriguing. (Score:2, Funny)
English to Code Converter (Score:4, Funny)
Re:English to Code Converter (Score:1)
Vaporware (Score:2, Interesting)
I'm skeptical... (Score:3, Insightful)
In a few years, this might be more plausible; but I think it's going to take a hell of a lot of work.
Perhaps they should focus on the new hybrid english/weblish dialect. More kids/teenagers/new-hires will speak that language; and it seems much easier to dissect because of the lack of adjectives and adverbs.
L8tr
Graphic detail (Score:1)
Why is everyone crapping on this idea? (Score:3, Insightful)
Re:Why is everyone crapping on this idea? (Score:2)
Re:Why is everyone crapping on this idea? (Score:2)
Uncanny Valley (Score:2)
Computers should be a tool to help people, not require them to learn a new language just to communicate with them.
But you're wrong, and that's precisely why people are crapping on the idea. You do have to learn a new language, and it is just different enough from English to piss you off. A bug in a formal programming language makes sense to the programmer because we can internalize the syntax and semantics of it, but we already have internalized the broader semantics of English such that the accepte
An excellent point (Score:1)
Binary? (Score:1)
DWIM (Score:3, Funny)
COBOL, fun, and lawyers (Score:4, Insightful)
When did programming in conventional non-COBOL languages cease to be fun? In fact, I've never hear someone describe COBOL programming as fun (cf. COBOL fingers [outpost9.com]). I've even had fun using FORTRAN, as it was the only way to use a cool plotter, and, later, a parallel supercomputer.
Besides, people who try to express things precisely in English are called lawyers, and we don't want to become that, do we?
Re:COBOL, fun, and lawyers (Score:2)
"You: I want to make a lah-di-dah program.
Com: Make it look like this.
You: Ok."
If you're hard-core en
If it can be converted to a program, it is one (Score:2, Insightful)
Programming languages have the advantage of precision and programmers' tools like debuggers and syntax checkers. Toy language developers overlook this big step. So how exactly do y
Maze... (Score:1)
> Create a map
Exception `NorthPoleError' thrown from Compass.eng:87 ( `Can't find north' )
from stdio.eng:56
from pacman.eng:22
F&W EOS DB: _
Idiot Check (Score:1)
Why bother? (Score:3, Interesting)
The problem is not whether it's in English or something else.
The benefit of experienced programmers is that they know Marketing is going to change their minds and want such and such a feature months later, so they just get ready for it well in advance. Even if it's not in the spec written in English or whatever language.
You can already write code in English. If you write it well enough, cheap programmers can compile it to their programming language of choice. And the main benefit is the cheap programmers can continue maintaining the software, and you can move on to writing other stuff.
What's their true talent? (Score:2, Insightful)
There is some related work which I find much more convincing. It's the work on Grammatical Framework [chalmers.se] (GF). GF is a programming language for writing multi lingual grammars. In GF you can if you wish specify the relation b
Re:What's their true talent? (Score:1)
Re:What's their true talent? (Score:1)
The project in the article comes from the MIT Media Lab, which is good at funding and publicity but lacks the intellectual rigor of the rest of MIT.
Projects in the Program Analysis Group [mit.edu] in the EECS Department are more along the lines of tools for people who are professional programmers: upgrade testing, invariant discovery, fault detection.
Hell, gimme the user description! (Score:2)
"Now that we're done thinking about eating, we're going to resume thinking about _main_..."
If that's plain english to the converter, it seems like it would need another level of conversion before you could stand back and watch a cluster chew through the Million Book Project and generate executable Shakespeare.
Romeo and Juliet in C.
You'd have to break down the semantics of literature, the generalities at least -
This was done 46 years ago; it was called... (Score:2)
Welcome to 1959! [wikipedia.org]
UML to Code (Score:1)
Naive view of natural language semantics (Score:1)
I can't find anything about the details of this system in the links, but if it really is using such a simplistic mapping between sentence structure and OO design, it's going to get in trouble. For example, consider the fact that subjects of different verbs can have completely different semantic roles:
John angered Bill.
John disliked Bill.
Translated into OO language, the first sentence talks about the John object modifying a property of the Bill object, but the second sentence talks about the Bill obje
Re:Naive view of natural language semantics (Score:1)
Your description of "John angered Bill." Is sufficient.
However, "John disliked Bill." is more likely the John object modifying it's on property of 'liking/disliking' the Bill object. The Bill object need not do anything based on the precise meaning of that sentence. If you had said that "John dislikes Bill, because Bill stole his ball." then it becomes clear that there may be a cause for John taking on the property of dislike. However,
Re:Naive view of natural language semantics (Score:1)
However, "John disliked Bill." is more likely the John object modifying it's on property of 'liking/disliking' the Bill object. The Bill object need not do anything based on the precise meaning of that sentence. If you had said that "John dislikes Bill, because Bill stole his ball." then it becomes clear that there may be a cause for John taking on the property of dislike. However, that is semanticly different than saying "Bill made John hate him."
I agree, that's why I added "(indirectly)". The point is
Before we do this... (Score:1)
Then whats our work ??? (Score:1)