dimanche 24 février 2013

A0357 L'Informatique pour les nuls: ce que l'on ne vous dit jamais

Je suis toujours surpris quand je vois des informaticiens confirmés et de qualité ne réaliser "sur le tard" que 

l'essentiel de l'activité d'un ordinateur
 consiste à déplacer de l'information
plutôt qu'à faire des calculs

Les mesures expérimentales sur la fréquence des instructions d'un ordinateur l'ont révélé depuis longtemps.
Voir par exemple:

8086 Instruction Average Frequency of Use
Move 27%
Conditional Jump 10%
Compare 7%
Push 7%
Pop 5%
Shift Left, Shift Right 5%
Loop 4%
Call 4%
Return 4%
Increment, Decrement 3%
Or, Xor 3%
Add 3%
Subtract 2%
Jump 2%
All other instructions had a frequency of use less than 2%.



Si l'on réalise que les Push, Pop, Call, Return, Jump sont en fait de purs déplacements d'information, cela fait plus de  60% des cas.

Les opérations proprement dites sont largement minoritaires, et parmi celles-ci, les  opérations logiques dominent: Shift, Or, Xor.

Les opérations "de calcul" sont vraiment réduites à la portion congrues, puisque si les additions et les soustractions totalisent 5%, leur version minimaliste -incréments et décréments- représentent 3%, et -qui plus est- servent surtout à calculer des adresses pour le déplacement de données.

On devrait enseigner cette réalité très tôt aux élèves.

Pourquoi est-elle si cachée ? Parce que l'informatique, dans sa volonté de "faire science", influencée par son complexe vis à vis des disciplines traditionnelles, attache beaucoup plus d'importance aux théorèmes, aux algorithmes, aux calculs arithmétique qu'ils n'en ont en réalité.

Cette réalité est certainement encore accentuée avec Internet et le Cloud Computing, qui passent leur temps à diffuser de l'information, à la dupliquer, à la sauvegarder.

NB. On pourra objecter à cette analyse que beaucoup de calculs sont maintenant effectués dans les processeurs graphiques, les GPU lors des opérations de compression / décompression, de rendering, de cryptage / décryptage. Mais ce sont là plus des opérations -certes essentielles- d'intendance, de logistique, de conditionnement qui restent en dehors du traitement "utile" de l'information.

A notre époque, on peut donc dire que:


L'essentiel de l'activité des ordinateurs sert à

1) déplacer DE l'information
2) SE déplacer DANS l'information

On pourrait aussi espérer que les langages de "programmation" deviennent de plus en plus des "langages de locomotion"


COBOL était un bon "langage de locomotion" -avec ses instructions MOVE et MOVE CORRESPONDING.  Prolog est certainement le meilleur à notre disposition, puisqu'il se contente d'exprimer - mais avec quelle élégance et quelle puissance- comment on décompose et recompose l'information.


Alain Colmerauer a d'ailleurs déclaré lors des Journées Recherche du Groupe Bull en 1982, à Sainte Maxime: "Prolog est destiné à remplacer Cobol". Rappelons qu'il a fait son stage de fin d'étude à Bull sur un compilateur Cobol, et qu'il a inventé Prolog pour faire de la traduction automatique, un bel exemple de pure combinaison  de déplacement d'information et de navigation dans l'information.

Attendons encore un peu ... que l'on se lasse de la dictature des langages orientés objet.

2 commentaires:

Catherine Esteyries a dit…

Bonjour Jean,

Bien, il faut alors changer le terme de "calcul littéraire" en "logistique littéraire" (un nouveau diamant sémantique !)

Bien amicalement
Catherine.

Jean Rohmer a dit…

Remarque imparable!