Errurs Seeing Double By Gerald M. Weinberg Foday, to the dear subject, I will subject of heteronyms. subject you A heteronym is "one of two or more words that have identical spelling but different meanings and pronunciations." There are some terrific sentences we can construct using two or more heteronyms, such as: !This program supervises the recreation file. the recreation the of MORAL: In constructing examples, as in constructing English sentences, avoid anything that even faintly looks like anything else. It's not necessary to show how "cute" you can be, or how you have mastered intricate syntax. When choosing an arbitrary symbol, be sure you don't accidentally relate it to some other symbol, thus creating the impression of necessity. For instance, innumerable manuals on OS/360 Job Control Language would give an example of a DD card looking like this: //FILEA DD DSNAME=FILEA .... The evening run is used for evening system load. If the conduct of the operators merits it, we will conduct the retraining exercise. The test will conclude when the supervisor is content with the content of the file. True heteronyms are relatively natural English--my continuing contains no more than twenty, rare in list including Over 50% of the users of such manuals did not fully understand that there was no relationship whatsoever between the DDNAME (the name after the //) and the DSNAME (the name after the =). Yet the principal reason for having the two names was to decouple internal program names for files (DDNAMES) from external operating system names for files (DSNAMES). Because of such lazy documentation, thousands of OS users considered the DDNAME/DSNAME distinction an encumbrance, rather than a useful feature⢠The cost to the world of the DDNAME/ DSNAME problem is incalculable, but another heteronym cost many users of a time-sharing system their entire security. In all the manuals for this system, each signori example contained the sequence: PASSWORD? PASSWORD The electrical unionization experiments were delayed by unionization problems with the electrical workers. and the triple If the refuse isn't removed, refuse to refuse the rocket. they will Computer languages, though, are not so restricted. Because the words in a computer program are not ordinarily read aloud, any two symbols that are spelled the same are, in effect, heteronyms. The mind tends to boggle at two heteronyms in an ordinary English sentence. Think what it does when faced with this lulu from PL/I: IF IF = THEN = ELSE IF; = THEN ELSE THEN ELSE which was supposed to illustrate that the user response to PASSWORD? was any arbitrary eight-character string. Some students researching the contents of typical user files discovered that over 1/3 of the "secure" information in this system could be unlocked by using the "password" "PASSWORD". The users were no more imaginative in choosing their passwords than the documentors were in choosing theirs! -5-
/lp/association-for-computing-machinery/errurs-seeing-double-aN6JtKvfV6