In
communications, a 'code' is a
rule for converting a piece of
information (for example, a
letter,
word, or
phrase) into another form or representation, not necessarily of the same type. In
communications and
information processing, 'encoding' is the
process by which information from a
source is converted into symbols to be communicated. 'Decoding' is the reverse process, converting these code symbols back into information understandable by a receiver.
One reason for coding is to enable communication in places where ordinary spoken or written language is difficult or impossible. For example, a cable code replaces words (e.g., ''ship'' or ''invoice'') into shorter words, allowing the same information to be sent with fewer
characters, more quickly, and most important, less expensively. Another example is the use of
semaphore flags, where the configuration of flags held by a signaller or the arms of a semaphore tower encodes parts of the message, typically individual letters and numbers. Another person standing a great distance away can interpret the flags and reproduce the words sent.
In the
history of cryptography, codes were once common for ensuring the confidentiality of communications, although
ciphers are now used instead. See
code (cryptography).
Codes in communication used for brevity
Code can be used for brevity. When telegraph messages were the state of the art in rapid long distance communication, elaborate commercial codes which encoded complete phrases into single words (commonly five-letter groups) were developed, so that
telegraphers became conversant with such "words" as ''BYOXO'' ("Are you trying to weasel out of our deal?"), ''LIOUY'' ("Why do you not answer my question?"), ''BMULD'' ("You're a skunk!"), or ''AYYLU'' ("Not clearly coded, repeat more clearly.").
Code words were chosen for various reasons:
length,
pronounceability, etc. Meanings were chosen to fit perceived needs: commercial negotiations, military terms for military codes, diplomatic terms for diplomatic codes, any and all of the preceding for espionage codes. Codebooks and codebook publishers proliferated, including one run as a front for the American
Black Chamber run by
Herbert Yardley between WWI and WWII. The purpose of most of these codes was to save on cable costs. The use of data coding for
data compression predates the computer era; an early example is the
telegraph Morse code where more frequently-used characters have shorter representations. Techniques such as
Huffman coding are now used by computer-based algorithms to compress large data files into a more compact form for storage or transmission.
An example: the ASCII code
Probably the most widely known data communications code (aka character representation) in use today is
ASCII. In one or another (somewhat compatible) version, it is used by nearly all personal
computers,
terminals,
printers, and other communication equipment. Its original version represents 128
characters with seven-bit
binary numbers—that is, as a string of seven 1s and 0s. In ASCII a lowercase "a" is always 1100001, an uppercase "A" always 1000001, and so on. Successors to ASCII have included 8-bit characters (for letters of European languages and such things as card suit symbols), and in fullest flowering have included glyphs from essentially all of the world's writing systems (see
Unicode and
UTF-8).
Codes to detect or correct errors
Codes may also be used to represent data in a way more resistant
to errors in transmission or storage. Such a "code" is
called an
error-correcting code, and works by including carefully crafted redundancy with the stored (or transmitted) data. Examples include
Hamming codes,
Reed–Solomon,
Reed–Muller,
Bose–Chaudhuri–Hochquenghem,
Turbo,
Golay,
Goppa,
Gallager Low-density parity-check codes, and
space–time codes.
Error detecting codes can be optimised to detect ''burst errors'', or ''random errors''.
Codes and acronyms
Acronyms and abbreviations can be considered codes, and in a sense all
languages and writing systems are codes for human thought. Occasionally a code word achieves an independent existence (and meaning) while the original equivalent
phrase is forgotten or at least no longer has the precise meaning attributed to the code word. For example, '30' was widely used in
journalism to mean "end of story", and it is sometimes used in other contexts to signify "the end".
Gödel code
In
mathematics, a
Gödel code was the basis for the proof of
Gödel's
incompleteness theorem. Here, the idea was to map
mathematical notation to a
natural number (a
Gödel number).
See also
★
List of coding terms
United States Government Code:
A form of communication used by government personnel to communicate their wishes for kickbacks.