I. Naissance de l'informatique :
Pourquoi est née l'informatique, et par quels moyens?
↑ 1. Des mathématiques à l’informatique
D'où vient l'idée de la machine qu'est l'ordinateur, et quels en sont les premières réalisations concrètes?
Depuis des millénaires, les mathématiciens et philosophes s’interrogeaient sur les paradoxes existant dans les mathématiques. On entreprit de revérifier tout à partir des bases afin de trouver la cause de ces paradoxes. Jusqu’au jour où Kurt Gödel, un logicien, prouva que certaines formules mathématiques sont indémontrables. La question qui en résulta était donc celle de trouver une technique permettant de déterminer si une formule est démontrable ou non.
C’est là qu’est intervenu Alan Turing (photo ci-contre), qui se demanda s’il est possible qu’une machine puisse résoudre ce problème. Il arriva à la conclusion qu’aucune machine mécanique n'est capable de répondre à cette question mais en décrit le fonctionnement d'une qui, selon lui, serait capable de résoudre ce problème : une machine à configuration interne fixe et capable de résoudre tout problème mathématique à l’aide d’un programme externe. Cette description correspond à celle d'un ordinateur.
Il revint aux américains John William Mauchly et John Presper Eckert de réunir électronique, logique et automatisme dans un même outil.
Réf. : Le monde numérique – Editions Larousse (Histoire de l’ordinateur)
↑ A. L’E.N.I.A.C et l'E.D.V.A.C
John Mauchly et John Eckert, deux professeurs de l’université pennsylvanienne John Hopkins, secondés par John Von Neumann, créèrent l’E.N.I.A.C. (“Electronic Numerical Integrator And Computer”). Ce monstre de 30 tonnes consommait 174kW, mais arrivait à un nombre, impressionnant pour l’époque, de 5000 additions par seconde. Mieux encore, cette machine était programmable, contrairement à des machines antérieures, ce qui permet à certains de le déclarer comme le premier ordinateur de l'histoire, un ordinateur étant forcément programmable selon la définition d'Alan Turning. L’ENIAC a été utilisé pendant 10 ans par la Ballistics Research Laboratory, ou BRL, un centre de ballistique de l'armée américaine basée à Aberdeen en Angleterre.
L’E.D.V.A.C., ou “Electronic Discrete VAriable Computer”, fut également construit par Mauchly et Eckert et fut inauguré en 1949. L’EDVAC avait deux particularités intéressantes par rapport à l’ENIAC : premièrement, il fonctionne en binaire pour raisons de simplification; deuxièmement, pour effectuer une tâche différente de la dernière effectuée, il suffisait de reprogrammer l’EDVAC, alors que, pour l’ENIAC, il fallait manipuler les tubes à vide.
Réf : PIRE, Bernard. «JOHN WILLIAM MAUCHLY», Encyclopædia Universalis [en ligne], consulté le 27 novembre 2012
↑ B. L’architecture de Von Neumann
John Von Neumann, ayant participé à la création de l’ENIAC et de l’EDVAC, publia en 1945 une thèse dénommée “First Draft of a Report on the EDVAC” (“Première Ébauche de Rapport sur l'EDVAC”). Dans celle-ci, il décrit la conception de l’EDVAC en 3 parties:
Il est intéressant de noter que le principe de l'architecture de Von Neumann est toujours utilisé aujourd'hui, et ce malgré l'avancement de la technologie électronique :
En expliquant les intérêts des améliorations faites entre l'ENIAC et l'EDVAC, nous avons évoqué le binaire. Expliquons comment fonctionne ce type d'écriture numérique qui est inclus dans la progression de l'informatique vers celle que nous connaissons aujourd'hui.
↑ 2. Le binaire
Quel est le fonctionnement du binaire?
↑ A. La notation positionnelle et les bits
Définissons tout d'abord les termes de “notation positionnelle” et de “bit”, ce qui nous sera utile pour simplifier cette section.
La notation positionnelle est un procédé d’écriture des nombres dans laquelle la valeur de chaque chiffre dépend de sa position et d’un multiplicateur appelé “base” de ce système et noté b. Le système d’écriture numérique décimal est un bon exemple de notation positionnelle. Il peut être dit “système de notation positionnelle en base b = 10”, ou simplement “base 10”. La valeur de la base dépend du nombre de “chiffres” du système, qui est de 10 pour la numérotation décimale. Si l'on veut préciser quelle est la valeur de la base de la représentation d'un nombre pour éviter la confusion, on met celle-ci en indice. Par exemple, le nombre 17 en base 10 s'écrit “1710”. Pareillement, le nombre 101 en binaire (le binaire étant de base 2) s'écrit “1012”.
Un “bit” est une contraction de “binary digit” et correspond à un chiffre binaire (“digit” signifiant “chiffre” en anglais). Le ne bit est donc le ne chiffre à partir de la droite dans une séquence binaire.
Voyons à présent comment fonctionne le binaire.
↑ B. Séries de chiffres codés et puissances de 2
Voici un tableau de comparaison entre un nombre en notation décimale et son équivalent en binaire :
Tableau de correspondance entre un nombre
exprimé en base 10 et son équivalent en base 2.
On observe que le premier bit est une alternance d'un 0 puis d'un 1 de telle sorte que que la valeur 1 est significative des nombres impairs. Par exemple, le 3 qui s’écrit “0011” en binaire, contrairement au 4 (01002). Le deuxième bit est l’enchaînement d’une séquence de deux 0 puis de deux 1 et le troisième bit d’une séquence de quatre 0 suivis de quatre 1. Le point commun de la variation de la valeur des bits en fonction de la valeur du nombre auquel ils sont associés est que l'on retrouve les puissances de deux : 20 = 1 pour le premier bit ; 21 = 2 pour le second ; 22 = 4 pour le troisième…
Dans la définition de la notation positionnelle, nous avons vu que la base est un multiplicateur qui fait varier la valeur d'un chiffre en fonction de sa position. Tentons à présent d'énoncer une conjecture dans le but de pouvoir changer un système de base 2 vers la base 10.
Réf. : “Table d'équivalence de nombres”. Les nombres de 0 à 255 en décimal, binaire et hexadecimal
↑ C. Changement de base : du binaire vers le décimal
Nous avons choisi de ne montrer que le changement de base 2 vers base 10 car c'est ce changement qui nous intéresse le plus dans le cadre de notre problématique (Naissance de l'Informatique).
Pour ce faire, reprenons le tableau de correspondance ci-dessus. Nous avions déjà remarqué qu'en base 2, le chiffre “1” pour le bit à droite était significatif des nombres impairs. On remarque en effet que, pour le seul changement de bit de 0 vers 1, la différence entre la valeur du nombre de départ et celui d'arrivée est de un. Par exemple, la séquence binaire pour le nombre 10 est “10102”, alors que celle du 11 est la même à part du premier bit qui devient 1 : “10112”. Par conjecture, nous pouvons affirmer que, si ce bit prend une valeur de 1, alors il ajoute 1 à la valeur du nombre.
De même, pour le deuxième bit, on remarque que la différence entre la valeur du nombre est de deux pour deux séquences inchangées à part du deuxième bit qui devient 1. Le chiffre 9 s'écrit en binaire “10012”, alors que “10112” correspond au 11.
Pour le troisième bit, la différence entre la valeur du nombre quand celui-ci est 0 et quand il est 1 est de quatre : le chiffre 8 s'exprime “10002” et “11002” correspond au 12.
À nouveau, on retrouve les puissances de deux : 1 pour le premier bit, 2 pour le deuxième, 4 pour le troisième... On peut donc énoncer la conjecture suivante : soit n un entier naturel tel que n corresponde au ne bit à partir de la droite. La valeur ajoutée par ce bit s'il a une valeur de 1 est de 2n-1.
Pour changer une séquence binaire vers la base dix, il faut donc faire la somme de tous les produits de la valeur respective de chacun des bits par la puissance de deux correspondant à sa position. Autrement dit : soit x la valeur d'un bit de position n et de base 2. La valeur en décimal du nombre est de ∑(x*2n-1)
Prenons un exemple concret en passant la séquence “10112” en base 10 :
Maintenant que nous avons montré comment une machine comprend et interprète le binaire, nous pouvons nous demander : Tous les appareils électroniques fonctionnant en binaire, qui ne contient que des chiffres puisqu'il s'agit d'une notation numérique, comment un ordinateur lit-il les caractères d'un clavier?
↑ 3. L'A.S.C.I.I. et l'Unicode
Comment une machine fonctionnant en binaire peut-elle lire des caractères? Quand ce problème a-t-il été résolu et par qui?
Un ordinateur fonctionnant en binaire, il a fallu trouver un moyen de changer un caractère sur clavier en une séquence binaire afin qu'elle soit utilisable par l'ordinateur.
L’ASCII, ou “American Standard Code for Information Interchange” est un moyen de communication standardisé qui permet de résoudre ce problème.
↑ A. Invention de l'ASCII
Au cours de la vulgarisation informatique, différents groupes créèrent différentes méthodes afin de résoudre le problème de reconnaissance de caractères. Par exemple, la Firme MultiNationale IBM développa dans le début des années 60 sa propre solution, EBCDIC, mais ce système eut plusieurs problèmes. Mais Robert Bemer William compila toutes les autres méthodes dans une liste, ce qui fit les manufacturiers d'ordinateurs se rendre compte de l'urgence de ce problème. Par la suite, Bob Bemer et l'organisme de normalisation ISO créèrent une solution, sortie en 1963 : l'ASCII. Cette convention devint en 1968 une norme gouvernementale.
L'ASCII est une table de correspondance codée en septénaire (base 7) qui inclut donc 27 = 128 possibilités. Ces 128 caractères étant insuffisants pour représenter les accents et autres caractères spéciaux de certaines langues, cela explique la prédominance de l'anglais en informatique, langue qui ne contient pas d'accents. L'Unicode, table de correspondance similaire et totalement compatible à l'ASCII, sera créé afin de résoudre ce problème.
Réf. : Lammert Bies, “ASCII character map”, consulté le 13 janvier 2013
↑ B. Le principe d'utilisation de l'ASCII
L'ASCII a un principe très simple. Rien ne sert de complexifier quelque chose de simple, cette section sera donc très courte. Cet outil informatique crée une correspondance entre un caractère et une séquence binaire, de telle sorte qu'à chaque caractère correspond une et une seule séquence. Voyons cela à l'aide d'une image.
Lorsqu'une touche du clavier est appuyée, le clavier émet un signal électrique, une séquence binaire qui est comparée par l'ordinateur à la table de correspondance ASCII (ou Unicode selon les cas) et est reconnu comme tel caractère. Dans le cas du caractère “i”, le clavier émet la séquence “11010012”. L'ordinateur compare cette séquence avec la table ASCII, à l'aide de laquelle il verra que la touche enfoncée est la touche “i”, ce qui fera l'ordinateur afficher le caractère “i”.