Apr 25, 01:41 PM

The 1970s

There is an excellent article by Edsger W. Dijkstra written in 1979 titled On the foolishness of natural language programming that is worth a read.

Dijkstra argues that natural language programming is pointless because symbolic representations make mathematical reasoning easier. We wish to make two counter-arguments:

a) Firstly, symbolic representations are not always succinct enough or ambiguous enough for human needs. A case in point is “Yes I can”. In formal logic, you’d have to unnecessarily choose between “There exists x, such that I can x,” and “For all things x, I can x.” Taking the temporal dimension into account, the choices get even richer.

b) Secondly, programmers need the precision of symbolism, not users. The developers who build complex computer products need special languages (to deal with complex math and logic). However, business users may not need to deal with complex math when using the product. For example, a database ought to be written in C++ or Java. However, a user of a database should not have to learn either language to get a list of names out of it.

Related Work from 2000 Onward

Related work: Mihalcea et al have a paper titled “NLP (Natural Language Processing) for NLP (Natural Language Programming)” [2006] where they describe their attempts to generate programming skeletons given a programming problem.

Related work: There is a natural language programming tool called System English produced by the University of Southampton (system-english.com) [2001].

Cohan Sujay Carlos




Commenting is closed for this article.