Les Newsletters Interstices
    Niveau facile
    Niveau 1 : Facile

    Claude Pair : un mathématicien qui rêvait de programmation

    Histoire du numérique
    Langages, programmation & logiciel
    Précurseur français de la recherche en informatique, Claude Pair a toujours eu une vision très pragmatique de cette discipline, qu'il concevait pour soulager le travail, affranchir des contraintes spatiales et temporelles.

    Entretien avec Claude Pair, mené par Isabelle Bellin.

    Claude Pair

    Vous avez lancé les premiers travaux de recherche en informatique à Nancy. Comment êtes-vous passé de l’enseignement des mathématiques à la recherche en programmation ?

    J’ai eu beaucoup de chance. J’avais presque trente ans lorsque cette nouvelle discipline est née. Le mot n’existait d’ailleurs pas encore, il date de 1962 ; avant cela, on parlait de « calcul automatique ». C’était tout simplement l’âge idéal pour partir à l’aventure d’une science émergente.

    Après mon agrégation de mathématiques à l’École normale supérieure en 1956, j’ai fait une partie de mon service militaire au Commissariat à l’énergie atomique (CEA) dans un service de calcul numérique. Il y a là un ordinateur, le Bull Gamma AET, avec une unité centrale de 8 mots de mémoire. Aussi rudimentaire, encombrant, fragile et coûteux qu’il soit, cet ordinateur fait alors figure d’outil révolutionnaire. Il permet déjà de faire des calculs qu’on ne peut pas faire à la main, comme des résolutions d’équations aux dérivées partielles pour mesurer la propagation de phénomènes… Même si nous avions du mal à évaluer les temps de calcul — il m’est arrivé d’abandonner un calcul, en réalisant qu’il monopoliserait 15 jours de machine —, nous mesurions déjà les gains de temps et de fiabilité. Nous avons aussi vite réalisé que notre point faible était l’écriture des programmes. Quel langage employer ? À l’époque, on utilise uniquement un langage machine codé en binaire (suite de 0 et de 1 ou bits) ne faisant appel qu’aux opérations câblées dans la machine : un programme est une suite d’instructions dont chacune ordonne à la machine d’exécuter une de ces opérations.

    Néanmoins, on commence à parler ici et là de langages plus proches de la langue usuelle. En 1958, se tient au CEA une conférence sur une « programmation automatique », une merveille à nos yeux ! On y évoque un « assembleur » capable de traduire automatiquement dans le langage de la machine les mêmes opérations câblées mais codées par des mots (additionner, déplacer, imprimer…). Nous ignorions que John Backus venait de créer au laboratoire d’IBM à New-York le Fortran : un langage inspiré de celui des mathématiques, avec des opérateurs , x…, des variables et des mots du langage courant (if, go to, do…) : « un langage avec des si et des do » disait Jean Legras, le pionnier du calcul automatique à Nancy, mon directeur de thèse.

    Un « compilateur », c’est-à-dire un programme permettant de traduire les programmes Fortran en langage machine, arrive à Nancy vers 1960 sous forme d’un paquet de cartes perforées. À l’époque et pour longtemps, elles étaient le support privilégié pour transmettre les données et les programmes aux ordinateurs. Mais ces cartes arrivent en désordre et les chercheurs nancéiens n’ont jamais réussi à les remettre dans l’ordre !

    Mathématicien mais aussi mécanicien, Jean Legras s’est très tôt préoccupé de calcul numérique et d’applications industrielles. À l’encontre de la brillante école de mathématiques de Nancy, berceau du groupe Bourbaki, il a soutenu le calcul automatique, considéré par ses pairs comme une piètre discipline, une fausse science.

    En 1957, il a obtenu de la compagnie IBM le prêt d’un IBM 604, une machine programmée par un tableau de connexions avec 12 mots de mémoire. En 1959, la faculté des sciences louait un IBM 650 (la machine pour laquelle le mot « ordinateur » a été inventé) et Jean Legras créait le centre de calcul, mettant l’analyse numérique au service d’autres disciplines, physiciens, chimistes, cristallographes, mécaniciens, médecins… Certains confiaient leurs travaux, d’autres travaillaient sur la machine. Certains vérifiaient les calculs à la main, d’autres très optimistes lançaient des calculs qui s’avéraient irréalisables (comme ce cristallographe qui posa un problème matriciel dont on réalisa qu’il fallait cinq ans pour le résoudre). Dès 1960, deux thèses, l’une en chimie, l’autre en électronique, étaient préparées en utilisant des moyens de calcul.

    Pourtant, après mon service militaire, en 1959, c’est d’abord à l’enseignement en classe de mathématiques spéciales que je me suis consacré, plutôt qu’à la recherche en mathématiques qui m’attirait peu : à l’époque, l’école dominante — celle de Bourbaki, un groupe de mathématiciens français — privilégie l’abstraction, la généralisation des concepts, le formalisme. Si j’appréciais l’activité mathématique, je souhaitais qu’elle soit plus proche des besoins des gens. Je me suis néanmoins vite rendu compte que la préparation aux grandes écoles était réservée à une élite ; en outre, son côté répétitif ne me convenait guère.

    En 1962, j’ai repensé à ma rencontre de 1958 avec l’ordinateur. J’ai contacté l’université de Nancy et je me suis inscrit au cours de troisième cycle « Analyse et calcul numérique » créé par Jean Legras quelques années auparavant en même temps qu’un centre de calcul. C’est à ce moment là que j’ai réellement bifurqué. Jean Legras m’a obtenu pour l’année 1963-64 un poste au CNRS qui commençait timidement à s’intéresser ce type de recherche.

    À cette époque, un nouveau langage voit le jour, Algol 60, qui laisse espérer une vraie recherche en programmation. Ce sera votre premier sujet de travail ?

    Effectivement, Algol 60 a été une révélation pour nous; nous avons pris conscience que l’informatique pouvait devenir une science. Le rapport final définitif sur ce langage créé par un groupe international, date de 1963. Algol est un langage révolutionnaire car il commence à ressembler à la langue naturelle : un programme n’est plus une suite d’instructions apparaissant au même niveau mais, de même qu’en français une proposition peut contenir d’autres propositions, une instruction peut contenir d’autres instructions, qui elles-mêmes en contiennent d’autres… et ceci sans limite. Cette application de la notion mathématique de récursivité tenait une place importante dans Algol 60. Il restait néanmoins à trouver l’algorithme qui permette de traduire automatiquement ce langage complexe en langage machine. Si cette « compilation », comme on dit, paraît aujourd’hui plutôt banale, à l’époque, nous n’étions pas sûrs d’y parvenir. C’est d’ailleurs une des raisons qui a finalement causé l’échec d’Algol 60.

    Au début des années 60, la notion de récursité était très mal comprise. Les premiers langages à l’avoir introduit sont LISP et Algol 60. Les algorithmes récursifs sont aujourd’hui fondamentaux en informatique. Tous les langages modernes les utilisent.

    Un exemple de récursivité est la possibilité pour une procédure de s’appeler elle-même, à la façon de certains calculs mathématiques, comme celui de factorielle (fac(n) = fac(n-1) x n). Autre exemple : qu’est-ce qu’un arbre généalogique ? C’est un nom connecté à deux arbres généalogiques… à moins que l’un ou l’autre ne soit vide, si le parent est inconnu.

    Une machine IBM 1620.
    Source : Wikipédia

    Malgré cela, ou plutôt grâce à cela, nous étions convaincus de l’intérêt de développer de nouvelles techniques, non seulement pour construire un compilateur, mais aussi pour programmer dans un tel langage efficacement et sans trop se tromper (en limitant les bugs ou bogues comme on dit). J’ai donc mis en place une petite équipe pour aborder ces problèmes. C’était une des premières en France (avec Grenoble, Paris, Toulouse). Entre 1963 et 1966, nous avons écrit un compilateur Algol 60 pour un IBM 1620. C’était un exploit : nous ne disposions pas de la machine, elle était chez le constructeur, à Metz, accessible seulement certaines nuits. Ce compilateur n’a permis que de soutenir quelques thèses. Il n’était pas assez abouti pour être utilisé par d’autres que nous et l’université n’ayant pas acheté la machine, l’aventure n’alla pas plus loin. Malgré tout, cela nous a permis d’apprendre beaucoup sur la compilation et sur la programmation en général.

    Après ces débuts à la fois prometteurs et décevants sur la programmation, comment se sont orientées vos recherches ?

    Nous avons continué à travailler sur la compilation, du point de vue théorique, avec l’idée de construire un métacompilateur, autrement dit un programme engendrant un compilateur à partir de la définition du langage à traduire. Nous n’étions pas très armés du côté de la sémantique (le sens d’un texte). Dans un premier temps, nous avons affronté le problème en travaillant sur l’analyse syntaxique des langages : il s’agit de mettre en évidence la structure du texte sous la forme d’un arbre ; dans le cas des langues naturelles, une telle analyse montre la décomposition d’une phrase en groupe de mots ou l’inclusion de propositions subordonnées dans une proposition principale.

    Manuel Algol 68

    Manuel rédigé sous la direction de Pierre Bacchus, Jacques André et Claude Pair, publié en 1975.

    Plus tard, les travaux autour d’Algol 68, qui a succédé à Algol 60 pour étendre considérablement son domaine d’application, ont profondément influencé nos recherches. J’ai accepté en 1967, à la demande de Louis Bolliet, un des fondateurs de l’informatique grenobloise, de prendre la responsabilité du groupe français Algol, dans le cadre de l’AFCET (Association française pour la cybernétique économique et technique), prédécesseur de l’actuelle Association française des sciences et technologies de l’information et des systèmes. Ce fut l’occasion de se retrouver entre informaticiens universitaires français : les occasions étaient rares à l’époque. Nous avons aussi créé une école d’été francophone en informatique, dont la première session s’est tenue à Alès en 1971. Nancy devenait une référence en informatique.

    Algol 68 a le mérite d’avoir initié une réflexion approfondie : la programmation structurée, les travaux sur les types de données, puis les langages à objets sont issus de cette réflexion. Mais on avait voulu y mettre tous les concepts les plus en pointe. C’était une belle recherche mais aboutissant à un outil trop complexe, de définition trop formelle. Il sera encore moins utilisé que son prédécesseur Algol 60. C’est d’ailleurs d’un schisme du groupe international qui l’avait conçu qu’est né le langage Pascal, beaucoup plus simple et qui a rapidement percé.

    Le mot cybernétique n’est plus guère employé aujourd’hui. On parle désormais de « science du calcul électronique », la science qui a permis de concevoir des calculateurs rapides, dont on rêvait déjà à l’époque. C’est Norbert Wiener, mathématicien très brillant du Massachusetts Institute of Technology (MIT) qui a défini le concept de cybernétique, comme la science des systèmes et de la communication. Chercheur doué et polyvalent, il avait conçu vers les années quarante un projet de calculateur digital qui ne verra pas le jour. Il a su entrevoir dès 1950 l’importance des bouleversements que l’informatique allait créer dans la société.

    En 1973, vous fondez le Centre de recherche en informatique de Nancy, le CRIN qui, en s’associant à l’INRIA, deviendra en 1997 le LORIA (Laboratoire lorrain de recherche en informatique et ses applications). Racontez-nous.

    En 1963, nous étions quatre ou cinq. Notre activité était centrée sur les langages de programmation et leur compilation. Puis très vite, elle s’est étendue aux méthodes de conception des programmes et à la structure des informations qu’ils manipulent dès qu’ils sortent du domaine numérique : une recherche fondamentale tournée vers le logiciel, faisant appel à nos compétences en mathématiques. Nous avions aussi une forte activité d’enseignement, passant du troisième cycle aux écoles d’ingénieurs puis à l’IUT et à la maîtrise. En 1973, nous avons été reconnus comme équipe associée au CNRS. La plupart des chercheurs et enseignants du CRIN étaient d’anciens élèves, les premiers thésards en informatique. En 1975, nous étions déjà 70 personnes, en majorité des enseignants, et nous avions plusieurs centaines d’étudiants.

    Mais, comme les autres laboratoires français, nous étions écrasés de charges d’enseignement et nous ne disposions d’aucun personnel technique. En outre, il a fallu encore près de dix ans pour obtenir un matériel à la hauteur de nos ambitions, comparable à celui des laboratoires étrangers. L’ouverture nationale et internationale s’amorçait pourtant. En particulier, nous avions noué des liens avec l’IRIA, ancêtre de l’INRIA : en 1972, lors de la création du LABORIA (Laboratoire de recherche d’informatique et d’automatique de l’IRIA), Jacques-Louis Lions m’avait demandé d’en être conseiller scientifique. Aujourd’hui, le LORIA est un laboratoire de 450 personnes et on entend parler toutes les langues dans les couloirs. Les études fondamentales sur la construction des logiciels en sont restées un point fort, même si d’autres axes ont été introduits, par exemple sur la reconnaissance de la parole et des images.

    Vous avez abandonné la recherche en informatique en 1981 pour vous consacrer aux systèmes éducatifs en tant que directeur des lycées au ministère de l’éducation nationale puis de recteur d’académie. Quel est aujourd’hui votre point de vue sur l’informatique ?

    C’est celui d’un utilisateur d’informatique domestique comme les autres, même moins que beaucoup d’autres ! Nous sommes bien loin des seules applications de l’informatique au calcul numérique comme c’était le cas au départ. Et si je confronte mes ambitions de l’époque à la réalité actuelle, j’observe que l’informatique et son couplage avec les télécommunications via Internet ont bien affranchi l’être humain de la plupart des opérations répétitives dans le travail et des contraintes temporelles et spatiales. Désormais, on échange à distance, des chirurgiens peuvent même opérer de loin, toute la connaissance humaine est accessible partout. Mais cela donne-t-il plus de capacité de réfléchir et de comprendre ? Assurément non. L’informatique à la maison consomme énormément de temps et conduit à un manque de disponibilité croissant, en particulier pour les relations de proximité. L’ordinateur permet de faire plusieurs choses à la fois mais l’Homme est un être inséré localement et il ne peut pas bien faire plusieurs choses à la fois.

    Je suis inquiet des conséquences sur le développement personnel des générations actuelles et futures. La tendance à prendre sur Internet les informations tous azimuts exige le développement de l’esprit critique. En outre, ces informations n’ont que peu de valeur si elles ne sont pas intégrées à un savoir ; or, nous ne savons pas grand chose sur la manière dont se constitue et s’enrichit le savoir d’un individu.

    Je suis aussi très préoccupé par le fossé que l’informatique crée avec les plus faibles, les plus pauvres, ceux qui ont du mal à se mouvoir dans l’abstrait. L’école devient d’ailleurs de plus en plus exigeante sur ces capacités d’abstraction, d’où un risque d’échec supplémentaire pour ces mêmes personnes.

    Finalement, les technologies de l’information et de la communication sont la meilleure et la pire des choses. Il est urgent de se préoccuper de la manière dont est utilisé l’ordinateur par le grand public, de ses conséquences sur la psychologie des individus et donc sur la société et la civilisation.

    Newsletter

    Le responsable de ce traitement est Inria. En saisissant votre adresse mail, vous consentez à recevoir chaque mois une sélection d'articles et à ce que vos données soient collectées et stockées comme décrit dans notre politique de confidentialité

    Niveau de lecture

    Aidez-nous à évaluer le niveau de lecture de ce document.

    Si vous souhaitez expliquer votre choix, vous pouvez ajouter un commentaire (Il ne sera pas publié).

    Votre choix a été pris en compte. Merci d'avoir estimé le niveau de ce document !

    Isabelle Bellin

    Journaliste scientifique.
    Voir le profil