Previous | Table of Contents | Next |
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.