Représentation Numérique de l'Information : Histoire et Principes
Classé dans Informatique
Écrit le en français avec une taille de 9,62 KB
Reprenant une idée de Leibniz, John Atanasoff a compris l’importance d’utiliser le système binaire pour construire un calculateur électronique. Il s’agit donc de transformer toute l’information en n’utilisant que des 0 et des 1. Pour des questions de place en mémoire et de précision, la notion de nombres flottants a été introduite.
Pionniers du calcul binaire et de la logique
Gottfried Wilhelm Leibniz (1646-1716)
Un des plus grands esprits de son époque. Philosophe, mathématicien, géologue, il s’intéresse avec talent à toutes les disciplines. Il construit une machine à calculer permettant d’effectuer des additions et des multiplications, qu’il perfectionne tout au long de sa vie. Il publie en 1703 un article dans lequel il expose les principes du calcul binaire. Ce savant germanique n’est pourtant pas convaincu de son utilité, mais il estime qu’il s’agit « d’une beauté essentielle : celle des liens qui unissent les nombres. »
George Boole (1815-1864)
Issu d’un milieu peu fortuné, c’est un autodidacte qui apprend le grec et le latin. Pour vivre, il enseigne dans des écoles villageoises. Pendant ses loisirs, il étudie les œuvres des grands mathématiciens, en particulier Lagrange et Laplace. Ses premières publications lui ouvrent les portes du Queen’s College à Cork en Irlande, où il enseignera jusqu’à la fin de sa vie. On le considère, avec Augustus de Morgan, comme le fondateur de la logique mathématique. Il définit des opérations sur les propositions, attribuant la valeur 1 à celles qui sont vraies et 0 à celles qui sont fausses. Cette algèbre binaire, qui porte désormais son nom, sera utilisée dans de nombreux domaines, notamment dans la conception des systèmes informatiques.
1. Représentation numérique de l’information
Pour représenter l’information en machine, nous utilisons deux symboles. L’une des raisons est qu’un appareil comme un ordinateur fonctionne avec des circuits électroniques, et qu’il est plus facile de distinguer deux états que plusieurs par une mesure qui peut être légèrement entachée d’erreur. Cette mesure peut nous dire si un circuit est ouvert ou fermé, ce qui correspond à faux ou vrai, 0 ou 1. Ces valeurs 0 ou 1 s’appellent des chiffres binaires ou bit (de l'anglais BInary digiT).
Une variable qui n’a que deux états, comme 0 ou 1, ou alors faux ou vrai, s’appelle aussi un booléen. Ce mot vient du mathématicien britannique George Boole qui a créé au XIXe siècle l’algèbre booléenne, fondement de la logique booléenne. C’est grâce à une multitude de petits circuits électroniques, ne pouvant être chacun que dans deux états, qu’une machine peut recevoir de l’information, la mémoriser, la modifier et la transmettre.
1.1. Un point d’histoire : l'invention de l'ordinateur
À la fin des années 1930, John Atanasoff (ou John Vincent Atanasoff), physicien, mathématicien et ingénieur états-unien d’origine bulgare, travaillait avec son étudiant Clifford Berry sur la construction d’un calculateur électronique (sans programme enregistré). Atanasoff avait compris que la solution du fonctionnement était le binaire. Il conçut les caractéristiques d’une machine qui sont encore actuelles :
- Les appareils seraient électroniques et disposeraient d’une mémoire.
- Des interrupteurs ouverts ou fermés permettraient de travailler avec des 0 ou des 1 et d’effectuer les opérations logiques.
L’ABC (Atanasoff-Berry Computer) entra en service à la fin 1939. Il pouvait effectuer une opération toutes les 15 secondes et pesait plus de 300 kilos. Pendant ce temps, la construction de l’ENIAC avait commencé. Eckert et Mauchly, concepteurs et constructeurs, vont breveter leur invention d’un ordinateur en 1945. Un procès aura lieu dans les années 1970, Atanasoff affirmant que l’ENIAC avait été construit sur la base de ses idées. Une Cour des États-Unis finira par invalider le brevet d’Eckert et Mauchly, tombé alors dans le domaine public, et attribuera ainsi l’invention du premier ordinateur électronique à Atanasoff.
En regroupant plusieurs circuits, on construit un circuit qui décrit une suite finie de 0 et de 1, que l’on appelle un mot. Par exemple, le mot 01000001, composé de 8 bits, est appelé un octet. Un mot de 8 bits peut servir à représenter 28 = 256 objets différents. Un mot comme 01000001 contient de l’information, mais il peut avoir de nombreux sens très différents, chacun lui donnant une valeur particulière. Il peut :
- représenter le nombre entier 65,
- correspondre au caractère 'A' dessiné sur une touche du clavier,
- mesurer la quantité de rouge permettant de représenter un point d’une image en couleur, etc.
Mais quel que soit son sens, il peut être manipulé de la même manière dans une machine.
Il suffit d’ouvrir une image avec un éditeur de texte pour se rendre compte qu’une suite de 0 ou de 1 qui représente une superbe image représente aussi une suite de caractères, un texte, mais sans aucun sens. Remarquons qu’avec 8 bits, nous pouvons en particulier représenter l’ensemble des caractères disponibles sur un clavier.
1.2. Numérisation : du réel au binaire
Le codage numérique de l’information consiste à l’enregistrer sur un support pour pouvoir la manipuler. Pour cela, il faut la discrétiser et la représenter par une suite de 0 ou de 1. Avant les procédés de numérisation, les informations étaient stockées différemment :
- Les textes étaient écrits à la main ou imprimés par des machines sur papier.
- Les images étaient conservées sur des pellicules sous forme de négatif, et le développement permettait par un procédé chimique d’obtenir une image sur un papier.
- Les sons étaient enregistrés sur des bandes magnétiques puis gravés sur des disques microsillons pour être distribués au public.
Aujourd’hui, un support unique peut contenir toutes les informations, et un appareil unique peut les enregistrer et permettre de les voir ou de les entendre. Pour numériser une information, il faut pouvoir la représenter par des nombres entiers qui, eux, peuvent s’écrire comme des suites de 0 ou 1 (écriture en base deux). Il s’agit donc de faire des approximations. On ne peut pas représenter exactement un réel comme 0,1, mais on peut en représenter une valeur approchée.
Lorsqu’on appuie sur une touche d’un clavier, par exemple la touche sur laquelle est inscrite la lettre 'A', comment cela est-il stocké dans la mémoire de la machine ? Le principe est d’attribuer un nombre entier à chaque caractère selon des normes précises. Ainsi, tous les caractères alphanumériques, signes de ponctuation, symboles d’un clavier français (dit « azerty ») ou anglais (dit « qwerty ») sont représentés par un nombre entre 0 et 255. C’est ce nombre qui est stocké en mémoire. Un texte n’est qu’une suite de caractères et il est donc représenté par une suite de nombres entiers, écrits en binaire, donc une suite de 0 ou de 1 qui constitue un fichier enregistré dans la mémoire de la machine.
Un quadrillage permet de décomposer une image en petits carrés nommés pixels (de l'anglais « picture elements »). Pour une image en couleur, on affecte à chaque pixel une quantité de rouge, de vert et de bleu pouvant varier chacune de 0 à 255 si l’on utilise le système RVB avec trois octets par pixel.
Un fichier représentant une image est donc composé, après une en-tête, d’une suite de triplets d’entiers. Toute information numérisée est donc représentée par une suite de nombres entiers, eux-mêmes représentés par des suites de 0 et de 1. Nous allons voir comment nous obtenons ces suites de 0 et de 1 pour représenter des nombres, puis des caractères et des textes, et comment nous les utilisons dans des programmes.
2. Numération arabo-indienne et le rôle du zéro
Sans le chiffre 0, comment ferait-on ? À l’époque des Romains qui écrivaient C pour cent et I pour 1, le nombre 203 s’écrivait CCIII, avec deux C pour deux fois cent et trois I pour trois fois un. Essayez de poser une opération, même une simple addition, écrite en chiffres romains !
Dans l’histoire, le chiffre 0 est apparu bien après les chiffres 1, 2, 3, ... Les Grecs comme Thalès ou Pythagore n’utilisaient pas ce chiffre. Trois siècles avant notre ère, les Babyloniens employaient un signe dans leur système de numération en base soixante pour signifier une absence. C’est à partir du Ve siècle que le zéro a été utilisé par les Indiens en tant que nombre. Ce nombre sera ensuite utilisé par les mathématiciens arabes et arrivera en Europe seulement vers le XIIe siècle, grâce aux ouvrages du mathématicien arabe Al-Khwârizmî, traduits en latin. Le mot « zéro » vient de l’arabe « sifr », lui-même traduction du mot indien « sunya » qui signifie « vide ». Bien sûr, l’arabe « sifr » est aussi à l’origine du mot « chiffre ».
2.1. Référence bibliographique
- « Spécialité Numérique et sciences informatiques - Première - nouveaux programmes », de Serge Bays, collection Prépas Sciences, Ellipses éditions.