# Code (information)

En sciences et techniques, notamment en informatique et en théorie de l'information, un code est une règle de transcription qui, à tout symbole d'un jeu de caractères (alphabet source) assigne de manière univoque un caractère ou une chaîne de caractères pris dans un jeu de caractères éventuellement différent (alphabet cible). Un exemple est le code morse qui établit une relation entre lettres de l'alphabet latin et des séquences de sons courts et longs.
En sciences de la communication, un code au sens le plus large fait référence à un langage. Toute communication est basée sur l'échange d'informations engendrées par un émetteur selon un code spécifique et que le destinataire interprète selon le même code.
Les données transmises ou conservées électroniquement consistent en une longue série de zéros et de uns (les bits) dont la combinaison définit nombres, symboles ou (par exemple, 11000001 = 'A'). Ce sont des codages de caractères. Dans un autre code, la même combinaison de bits pourrait signifier le nombre 193. D'autres types de données aussi, par exemple, les séquences des bases nucléiques dans les brins d'ADN sont exprimés par des codes.
En théorie des codes on appelle les éléments composant un code les « mots du code » ; les symboles qui composent les mots du code sont pris dans un alphabet (l'alphabet cible). On distingue l'alphabet source, sur lequel est formé le texte en clair, de l'alphabet cible, dans lequel est exprimé le texte codé.

## Définition

Un codage d'un alphabet $A$ dans les mots d'un alphabet $B$ est une fonction injective
    $c\colon A\rightarrow B^{+}$
qui, à chaque symbole de l'alphabet $A$, associe un mot non vide sur l'alphabet $B$. L'ensemble image $c(A)$ est le code, et ses éléments sont des mots du code. L'application $c$ est étendue en un morphisme de demi-groupe, encore notée $c$, de $A^{+}\to B^{+}$ défini par
    $c(a_{1}\cdots a_{n})=c(a_{1})\cdots c(a_{n})$,
où $a_{1}\cdots a_{n}$ est un mot sur $A$. Un code $c(A)$ est à déchiffrage unique si l'extension de c à $A^{+}$ est injective, donc si
    $c(a_{1}\cdots a_{n})=c(b_{1}\cdots b_{m})$
implique $n=m$ et $a_{i}=b_{i}$ pour tout $i$. Un code est préfixe ou à décodage instantané si aucun mot du code n'est préfixe d'un autre mot du code. Tout code préfixe est à déchiffrage unique, la réciproque est fausse. Dans la littérature française en théorie mathématique des codes, un « code » est souvent synonyme de « code à déchiffrage unique ». Le codage d'un texte est, dans cette formulation, le plus simplement la succession des codages des lettres qui le composent, indépendamment d'une éventuelle interaction entre elles ; en cryptographie ou en compression de données, la succession des symboles dans le texte source est elle-même une composante du traitement.

## Exemples de codes
### Codes généraux

* En biologie, le code génétique est une règle qui détermine, pendant la biosynthèse des protéines, la traduction des informations des ADN respectivement ARN en séquence d'acides aminés ;
* dans le trafic aérien on utilise les codes IATA et ICAO ;
* pour le codage des sons on utilise le code DTMF ;
* dans le commerce et l'industrie ou en on logistique on utilise divers type de code-barres ; des variantes plus complexes sont de codes bidimensionnels comme les z. B. der codes QR ;
* en médecine les maladies sont codées dans la classification internationale des maladies ;
* en traitement ou conservation d'images, les informations sur les couleurs sont codées selon divers modèles, comme le modèle YUV.

### Codes correcteurs

* Le code International Standard Book Number (ISBN) sert à l’identification de livres, dans ce code, le dernier symbole sert à vérifier que le code est correctement formé ; en ce sens, c'est un code reconnaissant d'erreurs ;
* de même nature, le International Standard Serial Number (ISSN) qui sert à identifier les publications périodiques, est un code correcteur ;
* il en est de même du code-barres EAN ;
* le codage de canal permet une représentation des données de façon à être résistant aux erreurs de transmission.

### Codes secrets

Le chiffrement par substitution consiste à remplacer des lettres par des lettres. C'est l'un de procédé de codage le plus rudimentaire. Des procédés de chiffrement plus complexes sont fréquemment appelés codes cryptographiques.

### En informatique

* En programmation, le code ASCII (American Standard Code for Information Interchange) sert à la représentation des lettres, chiffres et symboles de ponctuation par des suites de bits. Le standard Unicode a étendu ce code à pratiquement tous les systèmes de signes ;
* le code source d'un programme, expression d'un algorithme dans la syntaxe d'un certain langage de programmation, est traduit, par un compilateur, en un autre langage. Le compilateur peut procéder en plusieurs étapes, d'abord par une traduction en langage intermédiaire et enfin en langage machine ; ici, le terme « code » intervient à divers niveaux avec des significations différente ;
* en transmission des données, on utilise le codage en ligne ;
* le codage de source est un autre nom pour la compression de données ;
* sur internet, on rencontre le Geek code, un code dans la communauté des geek.

### Code de sécurité

Un code de sécurité est un code pour des fins d'identification ou d'authentification