L'informatique : la science au coeur du numérique

La page est créée Aurélien Verdier
 
CONTINUER À LIRE
L'informatique : la science au coeur du numérique
Académie des Sciences et Lettres de Montpellier                      1

                                    Séance du 29 Mai 2017

             L’informatique : la science au cœur du numérique
                                       Michel CHEIN
             Professeur émérite d’informatique à l’Université de Montpellier

MOTS-CLÉS
        Informatique, numérique,               discrétisation,   numérisation,   programmation,
machine de Turing, réseaux.
RÉSUMÉ
         Cet article vise au moins deux buts : indiquer quelques pistes pour comprendre
que l’informatique est une science autonome (et complexe) et pas un conglomérat
d’outils disparates ou une partie des mathématiques et s’interroger sur l’usage extensif
du terme numérique en lieu et place de celui d’informatique.

1 Introduction
          Tout le monde a entendu parler du bitcoin, la monnaie informatique qui a été
rendue possible grâce à la technologie des « blockchains » (cf. par exemple [1])
          Cependant, même si la création du bitcoin connait un succès certain, la
technologie sous-jacente semble porteuse de nombreux espoirs et The Economist titrait,
sur sa couverture de novembre 2015, Comment la technologie des blockchaines
pourrait changer le monde.
          Une blockchaine serait, comme l’écrit Jean-Paul Delahaye, « un très grand
cahier que, librement et gratuitement, tout le monde puisse lire, sur lequel chacun
puisse écrire, mais qui soit impossible à modifier et indestructible. Pour que cela soit
commode et pour empêcher les tricheurs de prendre des engagements en votre nom ou
écrire en se faisant passer pour vous, il faudrait que l'on puisse signer les messages
déposés de telle façon que personne ne puisse se substituer à vous. Il serait utile aussi
que l'instant précis où est inscrit un texte soit indiqué à chaque fois (horodatage). Cette
idée d'un grand cahier informatique, partagé, infalsifiable et indestructible du fait
même de sa conception est au cœur d'une nouvelle révolution, celle de la blockchaine,
ou plus explicitement et en français : la révolution de la programmation par un fichier
partagé et infalsifiable. »
          Pour les promoteurs des blockchaines cette technologie est une des
technologies structurantes de la prochaine décennie, elle serait disruptive dans le sens
où, appelée parfois « The world computer », elle devrait permettre, dit le Livre blanc
sur la technologie blockchaine, « à tout développeur de concevoir et distribuer des
projets qui repensent les organisations politiques (régulations, démocratie, …),
économiques (gouvernance d’entreprise, modèles économiques,…) et sociales (gestion
des organisations, …). »
          Dans la figure 1 ci-dessous, extraite de ce même livre blanc, des outils sont
mentionnés mais ce qui n’est pas dit c’est que ces outils utilisent de très nombreuses
notions informatiques : réseau pair-à-pair, protocole, fonction de hachage, clé
publique-clé privée, preuve de travail, horodatage, fichier partagé, etc… et des

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
L'informatique : la science au coeur du numérique
2                              Communications présentées en 2017

algorithmes, des algorithmes et encore des algorithmes ! Ce n’est qu’en ayant une idée
de ce que l’on peut faire et ne pas faire avec ces notions informatiques, que l’on peut
avoir une idée sur la réponse à la question : « les blockchaines : rêve ou cauchemar ? »
Ou, plus prosaïquement pour un entrepreneur, j’investis ou non, et combien dans cette
technologie ?

                                     Figure 1 : Blockchaines
         Dans ces différentes notions informatiques, on utilise peu ou pas de
mathématiques, peu ou pas de nombres, essentiellement quelques résultats simples
concernant les probabilités et les nombres entiers (en particulier la difficulté du
problème de factorisation). Ces mathématiques sont compréhensibles par un lycéen en
terminal scientifique, ce sont des mathématiques           basiques par rapport aux
mathématiques utilisées, par exemple, en physique et pourtant tout est numérique
aujourd’hui, même la République ! Depuis la loi pour une République numérique
d’octobre 2016 il faudrait modifier l’article premier de la Constitution en le faisant
commencer par « La France est une République indivisible, laïque, démocratique,
sociale et numérique … ».
         Il ne faut plus dire l’INRIA, acronyme de Institut national d’informatique et
d’automatique mais Inria, qui est devenu un nom propre … et, accompagnant le logo
publique d’INRIA on trouve le slogan « inventeurs du monde numérique ».
L’accroche de l’INS2I, qui est toujours l’Institut des sciences de l’information et de
leurs interactions, est « L’excellence scientifique au service de la révolution
numérique ». Une manière de voir ce que recouvre le terme numérique est de lire les

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
L'informatique : la science au coeur du numérique
Académie des Sciences et Lettres de Montpellier                    3

objectifs de ces deux organismes ; on peut aussi feuilleter le Journal du CNRS. En
effet, les rubriques actuelles de ce journal sont les suivantes : Vivant, Matières,
Sociétés, Univers, Terre, Numérique … voici les titres de quelques articles étiquetés
« Numérique » : La justice à l’ère du numérique, Le numérique nous fait-il perdre la
mémoire ?, Le tourisme en mode numérique, La justice à l’heure des algorithmes et du
big data, Les premiers pas de la robotique aérienne, L'intelligence artificielle devient
stratège, Les algorithmes menacent-ils la démocratie?, Les défis de l’Internet des
objets, Protection des données: le chiffrement ne suffit pas, Claude Shannon, le père du
binaire, Les premiers pas de la robotique aérienne, De l’égyptologie aux robots, les
sciences humaines innovent, Comment classer les joueurs d’échecs?, Voici Pyrène, le
nouveau robot humanoïde, Traduire comme on joue au Go ?
          A la place de numérique on utilise aussi parfois, dans certains domaines,
digital. Dans sa séance du 7 novembre 2013, l’Académie Française dans sa rubrique
dire, ne pas dire déclare : « L’adjectif digital en français signifie « qui appartient aux
doigts, se rapporte aux doigts ». Il vient du latin digitalis, « qui a l’épaisseur d’un
doigt », lui-même dérivé de digitus, « doigt ». C’est parce que l’on comptait sur ses
doigts que de ce nom latin a aussi été tiré, en anglais, digit, « chiffre », et digital, « qui
utilise des nombres ». On se gardera bien de confondre ces deux adjectifs digital, qui
appartiennent à des langues différentes et dont les sens ne se recouvrent pas : on se
souviendra que le français a à sa disposition l’adjectif numérique ». Digital est peu
utilisé en France, dans la communication ce terme est parfois utilisé pour insister sur
l’utilisateur, ce qui est devant l’écran, numérique étant réservé à ce qui est derrière
l’écran. Cet usage a suscité certaines plaisanteries pas toujours de bon goût (Figure 2) !

                                        Figure 2 Digital ?
         Même si cette expression sonne comme un oxymore aux oreilles de
certains, on parle aussi d’Humanités digitales, un manifeste des Digital Humanities a
été publié en français en 2010 sous ce titre anglais ! …
         Pour faire la part des choses entre numérique, digital et informatique, en
français, on peut se rappeler que numérique a d’abord été utilisé comme un adjectif, un
appareil photo numérique ou une montre à affichage numérique, avant d’être
substantivé.

2 Informations numériques ou discrètes ?
         L’informatique étant souvent définie comme étant la science du traitement
rationnel et automatique de l’information, commençons par dire un mot de ces
informations en nous posant la question est-ce-que ce sont des informations
numériques ou numérisées ?
         Au début est le codage des caractères. Prenons l’exemple du codage ISO/CEI
8859-1, appelé Latin-1, extension du codage ASCII de 128 caractères. Dans ce codage,

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
4                              Communications présentées en 2017

qui permet de représenter 256 caractères, la lettre A majuscule est représentée par 65
en notation décimale, et la lettre B majuscule par 66, mais ce ne sont pas des nombres :
AB est représenté par 6566, on n’additionne pas on concatène ! Au lieu d’utiliser la
notation décimale, on utilise souvent la notation hexadécimale qui est basée sur un
alphabet de 16 lettres (0, 1, 2, …, 9, A, B, C, D, E, F) et des mots de deux lettres soit
256 (= 16x16) mots.
           On peut aussi représenter ces 256 éléments par des octets. Un octet c’est
simplement un mot de 8 lettres construit avec un alphabet n’ayant que deux lettres.
L’ensemble de ces 256 mots de huit lettres construits avec l’alphabet contenant
exclusivement les lettres a et b est, dans l’ordre alphabétique : aaaaaaaa, aaaaaaab,
aaaaaaba, …, bbbbbbbb.
           Au lieu de considérer des lettres on utilise souvent les chiffres 0 et 1, mais on
ne fait pas d’arithmétique, même binaire, dans ce cas, ce ne sont pas des nombres ! Un
bit est une unité élémentaire d’information qui peut simplement prendre deux valeurs
distinctes mais qui est rarement considérée comme un nombre ! Insistons, il ne s’agit
pas de compter mais simplement de coder, de représenter un certain nombre d’éléments
différents par un codage univoque.
           On appelle langage formel, en informatique, un ensemble de mots construits
sur un alphabet et un mot est simplement une séquence d’éléments de cet alphabet
(pour simplifier nous ne considérerons que des alphabets et des mots ayant un nombre
fini d’éléments). Les langages formels, dont les codages décrits ci-dessus ne sont que
des exemples très simples et les langages de programmation des exemples plus
complexes, sont une des notions fondamentales de l’informatique.
           Voici un exemple simple de propriété d’un langage formel que l’on étudie
dans le cas des codes. Un langage est dit préfixe lorsqu’aucun mot n’est préfixe d’un
autre. Tous les codes de longueur fixe sont préfixes mais construire des codes préfixes
dont tous les mots n’ont pas la même longueur peut permettre de construire des
codages courts en codant les lettres de telle sorte que plus une lettre est fréquente plus
son code est petit.
           Considérons par exemple le mot baabccabdbaa. Dans ce mot de 12 lettres, a
apparait cinq fois, b quatre fois, c deux fois et d une fois. Avec le code préfixe suivant :
code(a)=0, code(b)=10, code(c)=110, code(d)=111, le codage du mot baabccabdbaa est
1000101101100101111000, dont la longueur est 22. Alors qu’en utilisant le codage
Latin-1 on obtient un mot de longueur est de 12x8 = 96.
           Considérons un langage que tous ceux qui ont fait du scoutisme connaissent
bien : le code Morse. Ce code, de longueur variable, n’est pas préfixe ce qui oblige à
séparer les lettres, par exemple le codage de SOS en Morse · · · — — — · · · pourrait se
lire, si on n’utilisait pas un séparateur de lettres, de différentes manières:
           · ·/ · — — —/ ·/ · · IJEI ou · · · —/ — — ·/· · VGI
           Naturellement, les nombres, l’arithmétique et plus généralement les
mathématiques sont nécessaires pour étudier les codes. Par exemple dans la définition
d’un code optimal pour un texte : c’est un code tel que la somme, pour tous les
caractères du texte, de la fréquence d’un caractère multipliée par la longueur de son
codage est minimale, de même qu’en botanique il peut être utile de compter le nombre
de pétales d’une fleur ou en entomologie le nombre de pattes d’une scolopendre !
           Donc, en informatique, on représente des informations par des chaînes de
caractères, on traduit, on analyse, on détecte et on corrige des erreurs dans de telles
représentations. Voici un exemple très simple de détection et de correction d'une
erreur : avant l'envoi d'un message, par exemple aabababba, on triple les caractères et
si, à la réception, trois caractères consécutifs ne sont pas identiques, c'est qu'il y a
erreur. Par exemple, si au lieu de recevoir « aaaaaaabbbaaabbbaaabbbbbbaaa », le

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
Académie des Sciences et Lettres de Montpellier             5

message reçu est « aaaaaaabbbaaabbbaaabbbbbbaba », on détecte une erreur sur le
dernier caractère. Le protocole de communication peut décider de corriger (dans
certains cas) un message comportant des erreurs, en gardant le caractère le plus
fréquent : cans cet exemple, comme il y a deux a et un b on peut supposer que le
caractère correct est un a. Le protocole de communication peut aussi décider de
demander à l'expéditeur d'envoyer à nouveau le message.
          Le traitement informatique des informations consiste à discrétiser et non pas
à numériser des caractères, des textes, des images, des sons, …, et aussi des nombres,
à les compresser, corriger, crypter et aussi à les structurer pour pouvoir les utiliser
dans des algorithmes.
          La structure fondamentale de l’informatique est la structure d’arbre. Dans la
figure 3 nous avons représenté à gauche le code préfixe proposé précédemment pour
représenter le mot baabccabdbaa et, à droite, un exemple d’arbre syntaxique. Les arbres
généalogiques, les arbres syntaxiques, les hiérarchies, l’organisation d’un ensemble de
fichiers en répertoires et sous-répertoires sont d’autres exemples bien connus de cette
structure que l’on munit de différentes opérations (comme ajouter ou supprimer des
feuilles ou des branches) pour pouvoir les manipuler dans des algorithmes.

                                 Figure 3 Arbres (informatiques)
          Un dernier mot : on distingue parfois, en informatique, données, informations
et connaissances.
          Donnée : SOS ; Information : appel au secours ; Connaissance : si réception
SOS alors contrôler l’appel, si appel crédible alors déterminer meilleur moyen
d’intervention, etc …
          Il y a quelques années on parlait d’Informatique numérique, d’Informatique
non numérique ou combinatoire, d’algorithmes numériques et d’algorithmes non
numériques. Aujourd’hui, alors que l’essentiel des traitements informatiques
concernent des caractères et pas des nombres, numérique est devenu quasi-synonyme
d’informatique. Avant de revenir sur cette question, il est temps de préciser la notion
d’algorithme souvent mentionnée dans ce qui précède et qui permet de préciser ce
qu’on entend par « traitement automatique » dans l’informatique est la science du
traitement rationnel et automatique de l’information. Le paradoxe du singe savant
réussissant à écrire Hamlet en tapant suffisamment longtemps au hasard sur un clavier,
dont la forme moderne est parfois attribuée à Emile Borel (directeur de thèse de
Georges Valiron, qui fut le directeur de thèse de Jean Kuntzmann …), sera la seule
illustration d’un traitement non rationnel !

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
6                              Communications présentées en 2017

3 Algorithmes
          Alan Turing a décrit en 1936 un modèle d’algorithme qu’Alonzo Church, son
directeur de thèse, proposa d’appeler Machine de Turing. Une machine de Turing peut
être considérée comme un modèle abstrait de quelqu’un en train de réaliser une tâche
avec un crayon et une feuille de papier. Imaginez-vous devant un ruban de papier
découpé en cases sur lequel quelques cases sont remplies, les autres étant vides. Vous
avez un problème à résoudre dont les données sont représentées par ces cases remplies.
Vous regardez une case et suivant son contenu et suivant l’état d’avancement de la
résolution du problème que vous voulez résoudre, vous pouvez faire l’une des
opérations simples suivantes : remplacer ou non le caractère lu par un autre et passer
dans la case à gauche ou à droite et c’est tout (et ne faire ces opérations qu’un nombre
fini de fois).
          En guise d’exemple nous allons construire une machine de Turing permettant
de résoudre un problème très simple qui consiste à remplacer dans un mot les
minuscules par des majuscules (et on laisse les majuscules …).
          Nous avons besoin de deux états. Un état de travail noté par T et un état final
noté par F. On va parcourir le mot de la gauche vers la droite. Initialement on lit la
première lettre du mot, la plus à gauche, et on est dans l’état T.
          Pour simplifier nous allons écrire une machine de Turing faisant ce travail sur
un mot ne contenant que les trois premières lettres de l’alphabet. Le fonctionnement de
la machine consiste à appliquer les règles ci-dessous tant que c’est possible.
Si on lit a dans l’état T alors on remplace a par A, on lit la case droite et on reste en T
Si on lit b dans l’état T alors on remplace b par B, on lit la case droite et on reste en T
Si on lit c dans l’état T alors on remplace c par C, on lit la case droite et on reste en T
Si on lit A dans l’état T alors on lit la case droite et on reste en T
Si on lit B dans l’état T alors on lit la case droite et on reste en T
Si on lit C dans l’état T alors on lit la case droite et on reste en T
Si on lit une case vide dans l’état T alors on passe dans l’état F
          Une telle machine est donc un mécanisme très simple et la thèse de Church-
Turing dit que : tout traitement mécanique (d’une séquence de caractères) peut être
réalisé par une machine de Turing.
          Turing a également défini ce qu’on appelle une machine de Turing
universelle. Si la description d’une machine de Turing universelle n’est pas très simple,
son fonctionnement est simple. Une machine de Turing universelle U est une machine
qui, lorsque sur son ruban sont écrits une machine de Turing M (comme celle que nous
venons de voir) et une donnée D (comme un mot composé de minuscules et
majuscules), produit comme résultat celui que fournit la machine M dont le ruban
contient initialement D et ceci quels que soient M et D.
          Ceci peut s’écrire symboliquement de la manière suivante : si M(D) représente
le résultat du fonctionnement de la machine de Turing M sur la donnée D et si U(M,D)
représente le résultat du fonctionnement de la machine universelle U sur la donnée
(M,D) alors U(M ,D)= M(D).
          Qu’est-ce que c’est qu’une machine qui, étant donné un programme et une
donnée, exécute le programme à partir de cette donnée ? C’est un ordinateur ! Un
ordinateur est une machine de Turing universelle, mais on pourrait aussi dire qu’un
ordinateur n’est qu’une machine de Turing universelle et, comme une machine de
Turing n’est pas très maline par rapport à ce qu’un être humain sait faire on pourrait
dire, d’une manière pédagogiquement très efficace, comme Gérard Berry, professeur
au Collège de France, Membre de l’Académie des Sciences et de l’Académie des
Technologies, Médaille d’or du CNRS 2014, « Fondamentalement, l’ordinateur et

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
Académie des Sciences et Lettres de Montpellier                7

l’homme sont les deux opposés les plus intégraux qui existent. L’homme est lent, peu
rigoureux et très intuitif. L’ordinateur est super rapide, très rigoureux et complètement
con. » (interview à Rue89)

4 Programmation
          La programmation est au cœur de l’informatique. La programmation consiste
à traduire un algorithme, qui peut être très astucieux parce qu'il a été conçu et réalisé
par un être humain, dans un langage compréhensible par une machine stupide (stupide
dans ses actions, pas dans sa conception), de plus limitée en taille et en rapidité.
          La programmation est une activité créatrice, comme composer un morceau de
musique ou trouver un théorème, c’est une activité difficile à normaliser et l’œuvre
monumentale, toujours en construction, de Donald Ervin Knuth, s’appelle, à juste
titre, The Art of Computer Programming.
          Il y a de nombreux paradigmes de programmation. La programmation par
machines de Turing a un intérêt essentiellement théorique et pédagogique et nous
dirons un mot de la programmation procédurale.
          Dans ce type de programmation, un programme est une séquence
d’expressions et d’instructions qui décrivent et font varier le contenu de la mémoire, et
la sémantique d’une séquence d’instructions consiste à faire ces instructions les unes à
la suite des autres.
          La mémoire d’un ordinateur est composée d’un ensemble de cases, similaires
à des boites aux lettres, chaque case ayant une adresse, un nom (ce qui est écrit sur la
boite) et une valeur (le contenu de la boite). Par exemple, la case mémoire d’adresse
10001 pourra avoir pour nom CodePiece et pour valeur la chaine de caractères
‘Pneu_123_X’. La programmation procédurale a trois instructions élémentaires :
l’affectation, le test et la boucle, qui peuvent être décrites intuitivement sur des
exemples de la manière suivante.
– Une instruction (simple) d’affectation s’écrit : NomA ← Expression.
          La sémantique d’une affectation consiste à évaluer l’expression Expression
qui est à droite du signe d’affectation et à mettre cette valeur dans la case dont le nom
NomA est à gauche du signe d’affectation.
          Considérons les affectations suivantes :
PrixHT ← 10 ;
Taxe ← 0.2 ;
PrixTTC ← PrixHT + PrixHTxTaxe ;
Com ← 0.1xPrixHT ;
          Ainsi, la première affectation consiste à mettre 10 dans la mémoire de nom
PrixHT, la deuxième consiste à mettre 0.2 dans Taxe, la troisième consiste à calculer la
valeur de PrixHT + PrixHTxTaxe est égale à 12 et à mettre cette valeur dans PrixTTC,
puis 1 dans Com.
          Si ensuite on exécute l’affectation : PrixTTC ← PrixTTC + Com on évaluera
ce qui est à droite et qui vaut 12 +1 = 13 et on mettra cette valeur 13 dans la mémoire
de nom PrixTTC (dont la valeur est ainsi passée de 12 à 13).
– Une instruction de test s’écrit de la manière suivante : si condition alors instruction1
sinon instruction2.
          La sémantique d’une telle instruction est la suivante : si la condition est
satisfaite alors on exécute instruction1, sinon (si la condition n’est pas satisfaite) on
exécute instruction2.

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
8                              Communications présentées en 2017

          Par exemple, supposons qu’après les affectations ci-dessus le programme
contienne le test :
          si PrixHT < 20 alors Nbre ← 100 sinon Nbre ← 50
          Comme PrixHT est égal à 10 (qui est plus petit que 20) on mettra 100 dans
Nbre, mais si PrixHT avait été supérieur ou égal à 20 on aurait mis 50 dans Nbre.
– Une instruction de boucle dite boucle tantque : s’écrit de la manière suivante :
tantque condition faire instructionboucle.
          La sémantique d’une telle instruction est la suivante : on évalue la condition,
si elle est satisfaite on effectue l’instruction instructionboucle si elle n’est pas
satisfaite on passe à l’instruction suivante et on fait cela tant qu’on peut, on « boucle ».
          Par exemple, supposons qu’après les instructions précédentes le programme
contienne la boucle :
          tantque Nbre < 300 faire Nbre ← Nbre +150
          Comme initialement Nbre vaut 100 on fera deux fois la boucle et la dernière
valeur de Nbre sera 400.
          A la fin du programme composé des 5 affectations, du test et de la boucle ci-
dessus, les valeurs des différentes cases mémoires sont les suivantes :
          PrixHT = 10, Taxe = 0.2, PrixTTC = 13, Com = 0.1 , Nbre = 400
          Ce programme n’avait pour seul but que de donner des exemples simples des
opérations d’affectation, de test et de boucle, il est naturellement stupide et si vous
demandez à un programme de faire des choses stupides il les fera sans renâcler !
          Les problèmes que vous pouvez résoudre par un algorithme programmable
avec ces 3 opérations sont exactement les mêmes que ceux que vous pouvez résoudre
en utilisant une machine de Turing.

5 Communication
          Un système informatique est composé d’ordinateurs connectés par des
réseaux, et de logiciels qui permettent de les utiliser. Il aurait fallu parler de
l’organisation d’un ordinateur : non seulement de sa mémoire, mais aussi des
entrées/sorties, de l’unité de traitement, de bus, de langage machine, de système
d’exploitation, etc. Si cette organisation est souvent décrite, l’aspect réseau est parfois
oublié voici donc quelques mots à ce sujet.
          La notion fondamentale concernant les réseaux est celle de protocole. Un
protocole de communication est un ensemble de règles et de procédures permettant de
définir un type de communication particulier. C’est un modèle de référence d'un réseau
informatique qui permet la connexion entre des architectures différentes et qui est mis
en œuvre par une hiérarchie de logiciels [2]. Pour décomposer et ordonner les
différentes tâches, les protocoles sont hiérarchisés en couches. Le modèle TCP/IP, qui
est le plus utilisé sur le web, est présenté en cinq couches dans la figure 4.
          Lors d'une transmission, les données traversent chacune des couches au niveau
de la machine émettrice. À chaque couche, une information est ajoutée au paquet de
données, il s'agit d'un en-tête, ensemble d'informations qui garantit la transmission. Ce
mécanisme s’appelle : encapsulation des données.
– Au niveau de la machine réceptrice, lors du passage dans chaque couche, l'en-tête est
lu, puis supprimé. Ainsi, à la réception, le message est dans son état originel.
– La couche application assure l’interface avec les applications, c’est le niveau le plus
proche des utilisateurs (ex. HTTP, HTTPS, FTP, SMTP, …)
– La couche transport découpe en paquets, gère des erreurs de transmission, et précise
à quelle application les paquets doivent être délivrés (ex. TCP, UDP, …)

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
Académie des Sciences et Lettres de Montpellier                9

– La couche réseau gère l’adressage et le routage (l’acheminement) des paquets de
données, fragmente le message à l’envoi, et regroupe les paquets en réception (ex. IP,
ICMP, ARP, …)
– La couche liaison spécifie comment les paquets sont transportés sur la couche
physique, et en particulier insère les séquences particulières de bits qui marquent le
début et la fin des paquets (ex.Ethernet, Token Ring, …)
– La couche physique décrit les caractéristiques physiques de la communication
(câbles, liens par fibre optique, connecteurs etc.).

                                   Figure 4 : Protocole TCP/IP
         Les protocoles sont des logiciels, Vinton Cerf et Robert Kahn pour TCP/IP et
Tim Berners-Lee pour le Web ont d’ailleurs été récipiendaires du prix Turing, prix le
plus prestigieux en informatique. Louis Pouzin aurait dû, pour les datagrammes et le
réseau Cyclades, obtenir ce prix, nous y reviendrons plus tard.

6 Conclusion
         Les aperçus sur l’informatique qui précèdent sont tellement simples que
certains pourraient penser que l’informatique n’est qu’un ensemble informe de
techniques. Pour les compléter voici quelques questions et objectifs scientifiques
actuels de l’informatique.
          En ce qui concerne les INFORMATIONS, en plus des problèmes de
représentation et de structuration, de maintenance, de correction de grandes masses de
données, de nombreuses recherches sont nécessaires pour prendre en compte des
données incertaines, incomplètes, ou bruitées et développer de bons modèles formels ;
la recherche d’informations précises dans des grandes bases de données est un
problème qui est loin d’être résolu, et le traitement informatique de la langue naturelle,
qui est fondamental car les informations ou les connaissances sont souvent exprimées
en langue naturelle, n’en est qu’à ses premiers pas, etc.
         Il existe de nombreux problèmes à résoudre en ce qui concerne les
ALGORITHMES : affiner la hiérarchie de la complexité des algorithmes et des
problèmes (ce qu’on peut faire ou ne peut pas faire compte tenu du temps ou de

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
10                             Communications présentées en 2017

l’espace) ; développer des algorithmes probabilistes ou des algorithmes approchés
lorsque les algorithmes exacts sont trop couteux ; développer des algorithmes parallèles
sur des machines multicoeurs ou sur des réseaux, et naturellement développer de
nouveaux algorithmes pour de nouvelles applications etc.
          En ce qui concerne la PROGRAMMATION, les problèmes de recherche sont
aussi très nombreux. En plus de la conception de nouveaux langages et de leurs
traducteurs dédiés à des nouvelles applications, de nombreuses recherches concernent,
par exemple, la sémantique formelle des programmes, la construction automatique de
programmes à partir de spécifications, la preuve de programmes etc.
          En ce qui concerne les SYSTEMES, le « ransonware WannaCry », les
« leaks » divers (Wiki, Luxembourg, Panama, Macron), le trafic des données privées,
prouvent tous les jours que les problèmes liés à la sécurité sont loin d’être résolus.
Depuis 2009, plus de 100 failles de sécurité ont été découvertes chaque année dans le
navigateur Firefox, ceci grâce au fait que c’est un logiciel open source, les failles dans
les systèmes propriétaires sont tout aussi fréquentes mais plus difficiles à découvrir
puisque seuls, même très brillants, les employés de l’entreprise propriétaire peuvent y
contribuer. Des recherches sont également menées, et ce ne sont que quelques
exemples, sur les systèmes répartis hiérarchisés de grande taille, les données
distribuées, internet et la structure du Web, en bref sur ce qu’on appelle l’informatique
dans les nuages.
          Pour compléter tout ceci on peut consulter les objectifs stratégiques d’Inria ou
ceux de l’INS2I.
          La liste des prix Turing, décernés chaque année par l’Association for
Computing Machinery, depuis 1966, est une autre manière de voir ce qu’est la science
informatique [3]. Cette liste suscite immédiatement une question qui fâche : pourquoi
un seul Français ? Les raisons sont multiples :
– Culturelles : en particulier, l’attachement, aujourd’hui disparu, des chercheurs
français à la langue française ;
– Industrielles et politiques : pendant de nombreuses années l’industrie française des
ordinateurs a fait jeu égal avec celle des USA. Le démantèlement de Bull, le
remplacement d’une option informatique européenne par une option franco-
américaine,…, en bref l’échec du plan calcul (sur lequel des livres entiers ont été
écrits) a conduit à la disparition de cette industrie. L’arrêt de Cyclades qui suscitait un
intérêt mondial fut tué par les télécoms qui développaient Transpac et le Minitel et qui
furent balayés par le développement de l’internet ;
– Scientifiques : de nombreux mathématiciens ne voulaient pas entendre parler de
science informatique, pas tous naturellement, mon patron Jean Kuntzmann, à qui je ne
rendrai jamais assez hommage, fut une de ces exceptions. Mathématicien « pur »
comme on disait à l’époque, Jean Kuntzmann, élève de Georges Valiron, créa la
première école d’ingénieurs en informatique l’ENSIMAG en 1959 et devint
informaticien ; de nombreux physiciens pensaient que l’informatique n’était qu’un
conglomérat de techniques, pas tous naturellement, Jacques Arsac, astronome, dont je
fus l’assesseur pour l’enseignement à Paris 6, créa l’Institut de programmation de
Paris, et devint un spécialiste de la programmation ;
– Institutionnelles (même si de nombreuses personnes dans ces institutions ont aidé le
développement de l’informatique) : l’Académie des Sciences dans laquelle il n’existe
pas de section informatique et dont la création d’une section sciences mécaniques et
informatiques fut bien tardive. Aujourd’hui encore, il est difficile de déterminer, sur le
site de l’Académie, qui sont les informaticiens académiciens. L’ENS et l’X qui ont
tardé à créer des laboratoires de recherche en informatique, sans parler des grands
corps ou de la société des agrégés.

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
Académie des Sciences et Lettres de Montpellier                11

           Il y a aussi, et surtout, la puissance de l’industrie et des universités états-
uniennes qui fait que bien qu’internationale l’Association for Computing Machinery est
largement dominée par les Américains.
           En plus de Louis Pouzin, je ne donnerai qu’un autre exemple, car la liste serait
trop longue, d’informaticiens français qui aurait dû avoir le prix Turing, c’est celui
d’Alain Colmerauer, disparu il y a quelques jours, inventeur de la programmation
logique et du langage PROLOG, pionnier de l’Intelligence Artificielle.
           Pour terminer : pourquoi le sens du terme numérique a-t-il pris une telle
extension ? Nous avons vu que l’explication par les nombres qui seraient sous-jacents à
n’importe quoi de « numérique» n’était pas convaincante.
           Certains disent que le numérique c’est l’informatique plus la communication
… ce qui laisserait sous-entendre que la communication en question n’est pas une
communication informatique ! Or, cette communication se déploie sur des réseaux
informatiques et les réseaux existent depuis le début de l’informatique … D’autres
pensent que l’obésité de la sémantique de numérique provient peut-être de la naissance
du Web au début des années 90 ou du fait que l’informatique étant présente partout il
fallait utiliser un autre terme pour représenter l’ensemble de ses applications ?
           En fait, aucune des explications n’est convaincante. Cet usage extensif de
numérique est spécifique du français, c’est, il me semble, un pur idiotisme. Essayez en
anglais (avec numeric ou numerical) vous ne trouverez pas de substantif et, de plus, en
tant qu’adjectif il s’agit généralement, dans des expressions comme « analyse
numérique » ou « calcul numérique », de nombres, sinon l’anglais utilise digital
comme dans digital camera. Et je me demande ce que peut bien signifier analyse
numérique pour un jeune français aujourd’hui … sans doute pas la méthode de Gauss-
Seidel pour résoudre les systèmes d’équations linéaires ni la méthode d’intégration de
Simpson !!!
           Un dernier exemple qui me touche de prés. L’IRIA, créé à Rocquencourt il y a
50 ans, fut renommé INRIA lorsque des centres furent créés en province et que
l’Institut de Recherche en Informatique et Automatique devint ainsi national. Il y a
quelques années l’INRIA s’est transformée en Inria qui n’est plus un acronyme mais un
nom propre… et accompagnant le logo institutionnel d’Inria on trouve le slogan
« inventeurs du monde numérique ».
           Si, comme le dit Michel Serres, « L’informatique crée le monde dans lequel
nous travaillons, vivons et pensons » pourquoi parler tout le temps de numérique ? Je
partage le point de vue de Maurice Nivat qui, dans la revue Epinet, écrit : « Le mot
numérique est un cas typique de ce que Éric Hazan appelle « l'évitement des mots du
litige » consistant, en changeant de vocabulaire, à faire disparaître des sujets qui
fâchent, des sujets trop polémiques, des sujets dont on ne sait pas bien comment se
dépêtrer. » [4]
           Mais les choses changent, lentement, trop lentement … création en 2012 de la
Société informatique de France reconnue et acceptée comme égale par les autres
sociétés savantes françaises ; création en 2012, après quelques chaires annuelles, d’une
chaire d’informatique au collège de France ; accroissement du nombre d’informaticiens
à l’Académie des Sciences, et comme le dit Guillaume Bagot, « Retirez les Français de
la Silicon Valley, des studios Pixar, de la City ou de Singapour et vous verrez la
globalisation caler ». Enfin, un signe tout récent, la question posée par des
scientifiques prestigieux aux candidats à l’élection présidentielle. Des académiciens,
des professeurs au collège de France, des responsables de sociétés savantes ont, enfin !,
posé aux candidats à la présidentielle une question simple « comment enseigner la
science informatique dans l’enseignement secondaire sans former des professeurs
d’informatique, donc sans créer CAPES et Agrégation ? » [5]. La simple formulation

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
12                             Communications présentées en 2017

de cette question est importante puisqu’elle exprime un consensus du milieu
scientifique sur la science informatique et la nécessité de son enseignement dans
l’enseignement secondaire. Mais les réponses des 8 candidats qui ont répondu ne me
rendent pas très optimiste. Même pas celle, pourtant la plus détaillée, de notre actuel
Président de la République.
          Trois choses m’inquiètent dans sa réponse. Premièrement, il propose une
conversion à l’informatique de professeurs d’autres disciplines. Nous avons
expérimenté cela dans l’enseignement supérieur à la fin des années 60 : les stages
d’une année et de plus de 600 h de conversion à l’informatique de professeurs du
second degré ou d’assistants d’autres disciplines, n’ont pas toujours été une réussite,
sauf pour ceux qui ont ensuite complété un cursus d’informatique. Deuxièmement, je
cite « Il faudra d’autre part examiner la possibilité … en étudiant la création d’un
CAPES et/ou d’une Agrégation d’informatique » … ceci annonce une commission à
venir alors qu’en 1978 le rapport Simon Nora et Alain Minc sur l’informatisation de la
société préconisait la création d’un CAPES d’informatique ! Troisièmement, une
option d’informatique dans le CAPES de mathématiques a été créée, c’est mieux que
rien mais ceci n’est pas satisfaisant. En effet, l’essentiel des mathématiques que l’on
enseigne en licence et master de mathématiques ne sont pas les mathématiques qui
concernent directement l’informatique (les mathématiques discrètes), et même pire les
mathématiques classiques (disons l’analyse pour simplifier) rebutent souvent les
informaticiens.
          A ce sujet, ne me faites pas dire que les nombres ou plus généralement les
mathématiques sont inutiles en informatique, et personnellement si, depuis 1962,
j’aime l’informatique, j’ai eu quelques aventures avec les mathématiques, en particulier
les mathématiques discrètes. Ce que je conteste c’est l’utilisation du terme numérique
qui pourrait faire croire que l’informatique n’est qu’une partie des mathématiques alors
que l’informatique est une science originale, complexe et autonome ! Je sais que, pour
l’usage de numérique il est sans doute trop tard, mais le titre de mon exposé, qui
reprend celui d’un manifeste de la Société Informatique de France [6], me semble être
un compromis acceptable.

RÉFÉRENCES
[1] http://www.editions-eyrolles.com/Livre/9782212566659/blockchain             (sur    les
    blockchaines)
[2] http://www.zeitoun.net/articles/les_protocoles_reseaux/start (sur TCP/IP et les
    protocoles)
[3] http://awards.acm.org/about/turing-laureates-spotlight (sur les lauréats du prix
    Turing)
[4] http://www.epi.asso.fr/revue/articles/a1512c.htm         (Maurice   Nivat     sur    la
    propagande numérique)
[5] http://science-et-technologie.ens.fr/ (questions aux candidats à la présidentielle)
[6] http://www.societe-informatique-de-france.fr/

Bull. Acad. Sc. Lett. Montp., vol. 48 (2017)
Vous pouvez aussi lire