Natural Language and Programming Language

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/commons/public_html/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524

Huazhi Qin

This week is my first time to learn a programming language, Python. The most impressive point to me is that it is not a technique with multiple special terms. Rather, it is actually a language that represents a new way of thinking and expression in modern life. Just as what Evans said, “understanding computing illuminates deep insights and questions into the nature of our minds, our cultures and our universe”.

Language acts as a communicative tool in our daily life. It helps us deliver interpretable information among people. When the computer becomes a part of our life, we have to learn how to communicate with computers. Thus, the programming language is generated to be read and written by humans to create programs that can be executed by computers.

During taking the Python tutorial lesson, I realized the many differences lying in natural languages and programming languages. According to Evans, natural languages are no longer applicable to a computer in terms of its complexity, ambiguity, irregularity, uneconomic, and limited means of abstraction.

First, programming languages should be absolutely explicit on “what”. Natural languages are ambiguous in many cases. One word could refer to two or more different meanings. For instance, a pronunciation “ta” in Chinese can represent three English nouns “he”, “she”, and “it”. However, every string (or words) in programming languages should only lead to one thing. The string “it” only refers to what you assign to it in the code.

Second, “how” should be described step by step. Because unlike human beings, computers act without basic “common sense” or any knowledge background. In other words, steps should be described one by one, in order to be processed by computers. In the tutorial, when my code does not run successfully, the reason usually roots in that something is “not defined”, which shows that one step was missing in my code.

Also, the programming language should be abstract and describe languages with small representations. According to Evans, natural languages have limited means of abstraction and always too complex and uneconomic.  Too many details will be brought into computation if using natural language. Lots of replacement can be seen in Python. For instance, I can use string “x” to represent a list of numbers. A “for” loop can stand for an action that replaces a particular string with each item in a list.

However, similarities can still be seen in natural languages and programming languages. As for natural language, users attach objects with sound patterns which generate meaning.  In computer science, a language is “a set of surface forms and meanings and a mapping between the surface forms and their associated meanings”. Both two kinds of languages help deliver meanings of users.


David Evans, Introduction to Computing: Explorations in Language, Logic, and Machines. Oct. 2011 edition.