 concept of code optimality will be met repeatedly throughout this chapter. But, as we are aware, language characters do not have a uniform probability, and, therefore, the source entropy must be less than the above maximum (7 bit/symbol). For ordinary text files, the most likely symbols are spaces and lower-case letters, which follow an exponential distribution. In Chapter 4, we established that the plain 26-character English alphabet (A-Z) has an entropy of 4.185 bit/symbol (1982 survey). We would then expect the entropy of the ASCII source to be somewhat greater than this value, considering the greater diversity of characters, but substantially less than 7 bit/symbol, because of the nonuniformity of the code source. Thus, as applied to language, ASCII can be regarded as being a nonoptimal code, since its codeword length is greater than the actual source entropy! For computer files, like tabulated data, source programs, or HTML Internet pages, however, the character statistics are quite different from that of the English language, and the corresponding probability distribution is somewhat closer to uniform. In this respect, ASCII is closer to code optimality. Once a codeword length has been fixed, and is, by definition, the same for all code- words, there is no possibility of further optimizing the code. On the other hand, code optimization seeks for optimal codes which are based on variable-length codewords. Information coding We will look at the issue of code optimization in the next two sections, starting with an analysis of the Morse code. The Morse code Another approach for coding language is to use codewords with variable lengths. The rationale is to make the length of the most frequently-used characters the shortest possible, and the reverse for the least frequently used ones. With this approach, the average codeword length is shorter than that of a fixed-length code, and this will bring us closer to coding optimality. The Morse code is a historical illustration of the above concept. Such a code has been