>> The definition of 'language' depends on who you are talking to.
I think that based on this discussion and earlier discussions, it is not always clear what the term "programming language" means. From the compilation point of view the term is clear, i.e., the lexical rules and the syntax of the language specify accurately what the language is. Kernighan and Ritchie used the term in that sense in their famous book, thus excluding printf from the language. From a human point of view, the term is less clear. A computer program usually contains names (identifiers) that must be understood by a person who wants to know how that particular program works. If a program contains definitions such as int nwhite, nother; int ndigit[10]; can we say that the names nwhite, nother, and ndigit, belong to the used programming language? If the answer is 'yes', all lexically correct names belong to the programming language, resulting in that the programming language is a huge set of symbols. If the answer is 'no', one might ask that into which language these names belong if they do not belong to the used programming language. They are not English words, if English words are those that can be found in an English dictionary. As both of these answers are somehow 'not good', I ended up proposing the idea that each computer program or any other document could be seen as containing its own language. Thus the above names would belong to the language of the program in which they were used. A name such as 'nwhite' can mean different things in different programs. In the program from which I copied it it was used to count white space characters. In a chess-playing application it might be used to count white chess pieces. A symbol can have a different meaning depending on in which language it is used. In the paper http://www.naturalprogramming.com/to_read/estimating_understandability_etc.pdf I have shown that these 'new' languages can be used to compare different naming styles in computer programs, and to show how computer programs relate to other software documents. Writing computer programs is a creative activity. If a computer program is considered to contain its own language, part of the programming project is then to create the language that is used in the program. -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302).