Key Issues in LanguageContents ↓

Contents › Section 7: Theory, terminology and disciplinary question › answer 5 of 39

Any difference between natural and programming languages?

Answered 20 July 2014✓ Accepted answer

Read this answer on Stack Exchange · See the question

All three of your assumptions about natural languages are questionable. They describe models used by linguists very many of which have been inspired by computer-like algorithms not language itself:

  1. Natural language does not "strongly distinguish between syntax and semantics". In fact, they are very closely interlinked. Syntactic constructions are used to express all kinds of meanings.

  2. Natural language is used to communicate much more than "to explain what something is or what is to be done". It's not even clear that communicating that kind of information is what language evolved to do (see e.g. Dunbar's thesis). Nevertheless, focusing on the kind of semantics that can be expressed by a programming language is what has been keeping the developments in semantics back.

  3. Natural and programming languages are compositional in very different ways. While you can define all the compositional rules in a programming language, a natural language is much freer - which is what makes language change possible. It also makes the expressive potential of a natural language significantly larger than that of a programming language. There's no irony in a programming language (that's not to say that programmers cannot express puns or even parody each other's code - but they're communicating those to other humans, not the computer).

In summary, while the language as computer code metaphor has some limited aptness and utility, it is more misleading than useful. Most linguists will have long rejected it if they ever maintained the mapping. If natural and programming languages were even a little alike, we would have working algorithm-based parsers and full-blown AI, already. But natural languages are not algorithmic at all. Understanding and speaking them is more akin to pattern recognition than feature analysis.

What I think is a much more interesting subject for research (and greatly understudied) is the rich and complex ways in which programmers use programming languages to communicate with the computer and each other. In that, programming languages are much more like natural language. For instance, we could find parallels of dialects, accents, and registers in programmer communities. We will find eloquent programmers and those who struggle to get their meaning out there. Not understanding the complexity, often leads people to erroneous statements that one can learn to code in a day. But it is no truer to say that memorizing and German dictionary and learning the rules of German syntax will make you 'speak German' than to say that learning all the rules of C will enable you to write a computer program.

© Dominik Lukeš. Licensed under CC BY-SA 3.0. Originally published on Linguistics Stack Exchange, attributed there to Dominik Lukes (profile).