Previous Table of Contents Next


2.2.2 Use of symbols and punctuation


   An important principle of human-usability is that a language should have sufficient variety of symbols that the user should be able to easily navigate through a stream of data. A language that does not follow this principle is the LISP language which uses parentheses almost exclusively. This problem often comes about from a language’s devotion to a certain functional, logical, or object-oriented paradigm. As pointed out by McIver and Conway, this can also lead to the problem of ‘syntactic homonyms,’ the use of a single syntactic construct to represent two distinct semantics. Richard and Ledgard also identify this as a problem, emphasizing that “distinct features should have distinct forms.?

   However, the reverse of this can also be a problem. A language that makes use of a large vocabulary can make a novice’s task of learning the language very difficult, and often misleading. The Ada 9x languages, for example, have 68 reserved words and over 50 predefined attributes. As explained by McIver and Conway, this problem is often dealt with by teaching the learner only a small subset of the language’s vocabulary. However, this can lead to confusion when the student is exposed to the new features of the language, and can lead to the production of overly verbose or obscure code if they neglect to use some language features. The problem can also lead to the presence of ‘syntactic synonyms,’ the availability of a number of syntactic constructs for the presentation of a single construct. These synonyms only serve to further mislead the student and unnecessarily expand the vocabulary of a language.

   Related to this problem is the excessive use of symbols for the denotation of functions or, to a lesser degree, for the denotation of syntactic structure. This is evident in languages such as C, particularly. While the resultant terse syntax can make the language very efficient for expert users, it has a detrimental effect on the novice user’s ability to learn the language.