A code or code (German pronunciation [ koːt ]) is a mapping rule that uniquely assigns a character or a character sequence from a possibly different set of characters (set of images) to each character in a set of characters . For example, Morse code creates a relationship between letters and a sequence of short and long sound signals (and vice versa).
In communication science, a code denotes a language in the broadest sense . All communication is based on the exchange of information which is generated by the sender according to a specific code and which the receiver interprets according to the same code.
Electronically transmitted or stored data consist, for example, of a long series of zeros and ones ( bits ), the combination of which is defined as digits, characters and / or letters (e.g.
11000001 = 'A'). In another code the same bit combination could e.g. B. mean the number 193. Also for other types of data , e.g. B. Measured values or the nucleobases in DNA strands is defined in codes, which manifestations mean what.
In coding theory , the elements that make up a code are called “code words”, and the symbols that make up the code words form an “alphabet”.
In general, a code is an agreement about a set (set) of characters such as B. index, icons or symbols (meaning carriers or references) for the purpose of exchanging information. Information does not exist in “pure” form; it is always formulated in some way. In general terms, a code is a formulation of information in which the characters are subject to syntactic, semantic and pragmatic rules. This requires the following elements:
- at least one information-formulating entity (recorder / transmitter)
- At least one information-receiving entity (reader / receiver) - can in exceptional cases also be identical to (1)
- a concrete or abstract content to be transmitted, the information
- an agreement for the purpose of formulating information and, if necessary, transmitting information. This contains a set of meaning carriers or symbols that are known to both instances (1. and 2.) and, if applicable, rules for using the symbols
Human language, animal sounds, but also the semiochemical molecules in bacterial communication and plant communication (auxin) are codes of varying complexity and capacity. In the case of animal sounds, bacteria, fungus and plant communication, the "agreement" has arisen through natural evolution.
where a word is above the alphabet . A code is said to be immediately decipherable if it does not contain a code word as the beginning of another code word. It is said to be clearly decipherable if its extension is injective. Every immediately decipherable code can also be clearly deciphered, but there are also unambiguously decipherable codes that cannot be deciphered immediately.
In the more specific, usual meaning, a code is an agreement on a set of symbols (references), for example between recorders (senders) and readers (receivers), in order to establish an efficient way of conveying frequent messages. It is used for low-cost (energy- and time-efficient) and secure, reliable recording and transmission of information. This is implemented differently depending on the type of information and the area of application. Efficiency is achieved by reducing complexity , which also decreases the capacity of the code. For this purpose, simpler elements and combinations of these are used instead of the information in its present form. These combinations refer to the original information. The more often something is used, the less effort it should take to process an element.
Codes involve two aspects of efficiency :
- On the one hand, they replace the original with a pure reference to it (what is designated is replaced by the code word) and therefore only need a store of references that guarantees recognizability and distinctness (freedom from errors).
- Second, they mostly use a modular system in which more frequent references are provided by short (few-element) combinations and less frequent references are provided by longer (multi-element) combinations. This means that the simplest elements (components, characters ) are used or reused as often as possible (namely in almost all references).
On a larger scale, codes - regardless of their own sophistication - only become truly efficient through repeated use as an aid to transferring information . Because the comprehensibility of the reading system requires some preparatory organization (e.g. learning) in this too. Codes therefore become part of the culture of systems (e.g. national language, technical standards) and develop a certain persistence against changes. The energy minimization makes codes attractive for the transmission of information under special conditions: long distances, long periods of time, large number of recipients, transmission with minimal effort in emergency situations, transmission with the help of other systems that work in this energy and structural dynamics area.
The efficiency can be increased by:
- The use of references, also in other areas, such as simulation .
- Multiple consecutive references. An effect can also be achieved indirectly via a long chain.
- The use of a modular system, if this encourages the use of more frequent simple elements.
In communications engineering, one speaks of source coding .
A code can be structured in such a way that the result into which it encodes information contains superfluous, i.e. redundant parts. That is, the generated sequence of symbols contains data that does not lead to the goal and, if decoded incorrectly, gives a contradicting result.
In the simplest case, the same thing is repeated again. But every increased predictability of characters is redundancy : For example, the u after q in written German are all redundant, since a u is always followed by a q . So no information would be lost if all u following a q were removed. However, the redundancy helps one to still be able to decipher and use important information despite a partial loss of data. So it protects against loss of information . It also enables falsified information to be recognized as such.
In communications engineering, one speaks of channel coding .
Examples of codes
- In biology , the genetic code is a rule according to which the information in the DNA / RNA is translated into amino acid sequences during protein biosynthesis
- In society, language and writing are to be seen as code systems; see also the Bernstein hypothesis
- In the great aviation are IATA code and ICAO codes used
- In merchandise management and logistics , among other things , various codes, so-called barcodes , are used, with the aid of which information about goods and the like is displayed in a sequence of black and white stripes ("bars") of different widths. In common parlance, the stripes themselves are incorrectly referred to as “barcodes”. Modern successors are so-called 2D codes , e.g. B. the QR code .
- Coding in medicine according to ICD-10
- In video technology, color information is encoded (e.g. YUV color model ) and, if necessary, compressed using a process that is tailored to the color space, known simply as video coding.
- The International Standard Book Number (ISBN) uniquely identifies books and provides an error-detecting code is
- The International Standard Serial Number (ISSN) is used to uniquely identify magazines and series of publications; it is also an error-detecting code is
- EAN as an error-detecting code
- With monoalphabetic encryption letters are replaced by other letters. However, data encrypted with more complex procedures is often referred to colloquially as code or secret code .
- In the computer , among other things, the ASCII ( American Standard Code for Information Interchange ) is used to represent letters , digits and punctuation marks by bit sequences - a so-called binary code . The Unicode standard now includes almost all character systems in the world.
- When programming , the programmer translates the specifications for algorithms into a source text that is formulated according to the syntax of a certain programming language and that is translated into other forms of program code - such as intermediate code (e.g. bytecode ) in the course of further development of a computer program . The resulting machine code contains the machine instructions that a processor can execute.
- Line codes are used in data transmission .
- The geek code can be found in e-mails or on Usenet on the Internet .
- Wilfried Dankmeier: Basic coding course. Encryption, compression, debugging . 3rd revised and expanded edition. Vieweg, Wiesbaden 2006, ISBN 3-528-25399-1 .
- Konrad Jacobs , Dieter Jungnickel : Introduction to combinatorics . de Gruyter, 2003, ISBN 3-11-016727-1 .
- Ralph-Hardo Schulz: Coding Theory. An introduction . 2nd updated and expanded edition. Vieweg Verlag, Wiesbaden 2003, ISBN 3-528-16419-0 .
- Code Cracker - Explains a variety of codings
- Eva-Maria Krech et al .: German pronunciation dictionary. Walter de Gruyter, Berlin / New York 2009, ISBN 978-3-11-018202-6 . Max Mangold: The pronunciation dictionary. Duden Volume 6. Dudenverlag, Mannheim / Zurich 2005, ISBN 978-3-411-04066-7 .
- DUDEN Informatik , 1993, ISBN 3-411-05232-5
- Introduction to coding theory (PDF; 246 kB) University of Paderborn
- Jacobs, Jungnickel: Introduction to combinatorics . S. 132 .