La logique informatique
(selon les travaux de J.D WARNIER)
L.C.P Logique de construction de programmes
Que c'est-il passé depuis les débuts de la programmation !
Peut-être allez vous me trouver un peu vieux-jeu, mais relater un peu l'histoire me parait tout à fait essentiel si l'on veut comprendre le présent.
Il était une fois ! cela se passe dans les années 60 (les sixties.., une grande époque !) les ordinateurs arrivent et avec eux, le soucis de les programmer, quelle aventure ! nous avions à notre disposition les quelques instructions indispensables pour "lire" des données, effectuer des calculs, effectuer des branchements conditionnels et enfin "écrire" les données en sortie du programme.
Il fallait donc faire en sorte que toutes ces instructions s'exécutent de façon ordonnée et sous certaines conditions. Il fallait donc pouvoir représenter dans le temps et l'espace l'ordonnancement de ces instructions sous la forme d'un organigramme tel que celui-ci :
Un rectangle avait pour rôle de représenter un ensemble d'instructions devant s'exécuter à un endroit précis du programme.
Une flèche reliant deux rectangles ou losanges représente un branchement systématique.
Un losange représente un test pour conditionner ou non un branchement vers un rectangle ou autre losange !.
Vous serez d'accord avec moi pour dire que ce type de représentation d'un programme comportait un certain nombre d'inconvénients :
1°) On ne voit pas très bien ce que représente un rectangle, celui-ci pouvant exprimer :
- Soit une suite d'instructions devant s'exécuter sous les mêmes conditions,
- Soit une grande fonction du programme nécessitant un grand nombre d'instructions, pas forcément exécutées sous les mêmes conditions,
- Soit une instruction à laquelle le programmeur veut donner une importance particulière.
- Soit ......
2°) Les traitements et les branchements rendent très difficile la compréhension d'enchaînement des séquences. Ceci étant le plus souvent dû, au fait qu'un losange peut exprimer soit une condition simple, soit une condition complexe.
3°) Dans une représentation telle que celle proposée, il est très difficile sinon impossible, de dégager une vue hiérarchique entre tous les ensembles d'instructions, ce qui a pour conséquence directe, de travailler au niveau du détail et non pas de l'ensemble, d'où une méconnaissance totale du référentiel (ou structure) dans lequel se situe un rectangle, donc du problème en général.
Il fallait donc faire quelque chose, car outre le fait que ce genre de solution ne pouvait-être concocter que par des petits génies, mais en plus il devenait quasi-impossible d'apporter quelque modification que ce soit, sauf par l'informaticien (irremplaçable) qui l'avait écrit ! (et encore)!.