Natural Programming Languages

A thought-provoking article in the ACM Queue (linked to by Slashdot, so it may be a bit slow).

  Natural Programming Languages and Environments

There some good ideas in there, especially with regards to debugging. However, I've always thought of "natural" programming languages as something that the "average" user would want to use for everyday tasks in some system. I think it's hard to avoid getting into the nitty-gritty details when building large systems that you want to be time and/or space efficient in terms of runtime resources (not necessarily development time).

It was interesting to note that rule-based and event-based structure was deemed to be the most common way people naturally expressed the way to solve a problem. Yet, logic-based languages (that use rules) seem to be the hardest for a lot programmers/students to pick up on. (That's been my experience, anyway.)

For some more discussion that is considerably older (showing that the topic is certainly not new...), you can check out something Dijkstra and Sammet had to say (with slightly differing opinions).

  On the foolishness of "natural language processing" (Dijkstra)

  The use of English as a programming language (Sammet, requires ACM membership to view)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Forward/Backward-chaining

It was interesting to note that rule-based and event-based structure was deemed to be the most common way people naturally expressed the way to solve a problem. Yet, logic-based languages (that use rules) seem to be the hardest for a lot programmers/students to pick up on. (That's been my experience, anyway.)

Personally, I found Prolog rather difficult to learn at first, whereas I took to CLIPS quite quickly. My feeling is that it was easier to get forward-chaining (CLIPS) rather than backward-chaining (Prolog) rule systems. Perhaps this is a factor? The article seems to be referring to forward-chaining, from a quick reading.