Extrait de Colloque sur l'Histoire de l'Informatique en France, Actes édités par Philippe Chatelin, 2 volumes (461+428 p.), tome 1, p. 31-43 ; Grenoble, mars 1988 ; ISBN 2-9502887-0-7

DES ORDINATEURS À L'INFORMATIQUE (1952-1972)

Jacques ARSAC
professeur à l'Université P. et M. Curie
correspondant de l'Académie des sciences

 

Je vais évoquer ici la période, allant pour moi de 1956 jusque vers 1975, pendant laquelle la communauté scientifique française a pris contact avec les ordinateurs pour faire émerger petit à petit une nouvelle discipline que j'ai appelée « la science informatique ». Je ne le ferai pas en historien : ma culture et ma compétence en ce domaine sont trop faibles. Je n'ai pas l'art de retrouver les bons documents, et c'est M. Mounier-Kuhn qui m'a mis un jour sous les yeux cette photocopie d'un texte témoin d'un épisode important de ma vie scientifique et dont j'aurais dû garder quelque souvenir. Sans cet historien, je n'aurais même pas eu l'idée qu'un tel texte puisse exister, et en conséquence je ne l'aurais pas trouvé, et il aurait été passé sous silence. Combien d'autres silences dans ma mémoire ? J'ai essayé de retracer ici mes souvenirs le plus fidèlement possible. Je pense qu'à partir de ce récit, un historien rompu à la recherche de documents devrait pouvoir établir les faits avec quelque rigueur. Je suis incapable de fournir moi-même les documents justificatifs. J'espère seulement que ma mémoire ne m'aura pas joué de trop mauvais tours...

Premier contact avec les ordinateurs (1956-1959)

Je suis entré dans l'équipe de Radioastronomie de J.F. Denisse en 1950, pour mon diplôme d'études supérieures. J'ai travaillé à la réalisation d'un interféromètre pour 3 cm de longueur d'onde, et ceci m'a tout de suite amené au problème du dépouillement des résultats, problème de calcul numérique. J'ai aussi contribué au dépouillement de l'observation radioastronomique d'une éclipse de soleil (équation de convolution). Le calcul était présent partout en radioastronomie.

Il était aussi fort important en astronomie (astronomie de position, calcul de l'heure) et en astrophysique. De sorte que lorsque en 1965 IBM annonça un premier cours de programmation pour l'IBM 650 qui venait d'arriver Place Vendome, encouragé par J.C. Pecker qui avait aussitôt saisi l'importance de l'affaire, je suivis cet enseignement et obtint un diplôme de programmeur IBM.

Des collègues, dont Bernard Vauquois et Jean-Louis Rigal, prirent le même chemin. Nous allâmes suivre des cours pour le Gamma AET des machines Bull. Après quoi, nous essayâmes de convaincre les responsables de l'observatoire qu'un ordinateur rendrait au moins autant de services qu'un nouveau télescope, parce qu'il permettrait d'extraire des observations des informations fines que l'on avait jusqu'alors négligées. M'appuyant sur l'analyse de la façon dont un instrument d'optique forme une image d'un objet, à coups de transformées de Fourier et de propriétés des fonctions analytiques, je montrai que le pouvoir séparateur est limité par le bruit de fond et non par l'instrument, si l'on en connaît avec précision les caractéristiques, et si l'on accepte de faire des calculs sur les images /ARS59/.

Pour convaincre mes collègues, je faisais des séminaires sur les ordinateurs. Je les présentais comme des machines à calcul de bureau (celle de l'époque, électriques à engrenages...), avec des registres et la nécessité d'une commande par programme ; mais telles que la suite d'instructions qu'elles exécutaient ne différait pas de celles que l'on aurait réalisée à la main avec une machine de bureau.En fait, il y avait à l'Institut d'astrophysique une salle de calcul où une vingtaine de dames s'escrimaient sur de telles machines. Elles avaient de grandes feuilles de calcul, et des consignes précises : multiplier le contenu de la colonne 1 par celui de la colonne 2, ajouter le contenu de la colonne 3. Si le contenu de la colonne 4 n'est pas nul, diviser par le contenu de la colonne 4 et écrire le résultat colonne 5, sinon reporter le nombre de la colonne 2 en colonne 5, etc. De là à un programme, le pas était vite franchi... S'appuyant sur cette expérience, on pouvait faire comprendre à quoi servait un ordinateur.

Grâce à la perspicacité d'André Danjon, directeur de l'observatoire, la décision fut prise en 1959 d'acheter d'occasion l'ordinateur IBM 650 de la place Vendome. Ainsi fut créé le centre de calcul de l'Observatoire, dont on me confia la réalisation et la direction.

2. Le centre de calcul de l'Observatoire (1959-1964)

Mon travail se modifia alors complètement. Il fallait amener les chercheurs astronomes et astrophysiciens à utiliser au mieux l'ordinateur de l'observatoire.

2.1 Faciliter l'accès à l'ordinateur

A l'époque, le seul langage vraiment utilisable sur le 650 était l'assembleur PASO II. Or le calcul de l'heure à partir des relevés de l'astrolabe exigeait la totalité de la précision de la machine. Il fallait programmer finement celle-ci pour en tirer le meilleur parti. Je proposais le langage CAM, qui gérait les nombres en virgule fixe en suivant les indications de cadrage données par le programmeur. Je rédigeai un compilateur pour ce langage qui produisait un programme PASO II. Il fallait à cette époque faire face à un irritant problème de bibliothèque de sous-programmes : chaque programmeur devait rajouter aux cartes de son programme les paquets représentant le calcul des fonctions dont il avait besoin (racine carrée, sinus, logarithme, etc.). Ces paquets devenaient rapidement inutilisables, les cartes en étaient écornées, certaines égarées, ou le paquet non remis en place. Le système CAM gérait la bibliothèque de sous-programmes et intégrait au programme résultat les fonctions nécessaires.

Jean Kowalevsky ayant réalisé un interpréteur pour un langage très compact de son invention (le code « sardine »), j'écrivis un compilateur pour une version notablement simplifiée de Fortran. Ce n'était guère utilisable pour la programmation de calculs importants, parce que l'on manquait par trop de mémoire, et que les temps de calcul sur le 650 n'étaient pas excellents, mais cela permit néanmoins d'habituer les gens de l'Observatoire à ce langage.

En 1963, l'Observatoire acquit un 1401 IBM à cartes (4K octets, sans bandes). J'écrivis un compilateur Algol sur cette machine, qui produisait un texte en langage intermédiaire en notations postfixée interprétable sur le 650 IBM. Là encore, il ne s'agissait pas d'un système exploitable pour du calcul, mais c'était un outil dont j'avais besoin pour pratiquer un langage dont je commençais l'enseignement à l'Institut de programmation que René de Possel venait de faire créer à Paris.

Les besoins en calcul de l'Observatoire s'étant développés à cause du 650, les chercheurs allaient faire exécuter leurs gros calculs sur le 704 de l'Institut Blaise Pascal, rue du Maroc. De Meudon, c'était une expédition, et il était fort désagréable d'y partir pour trouver une faute de syntaxe dans la deuxième carte du programme. J'écrivis donc sur le même 1401 un analyseur syntaxique Fortran qui permettait de n'amener à Blaise Pascal que des programmes syntaxiquement corrects.

Tous ces travaux de programmation prenaient beaucoup de temps. Il ne me serait pas venu à l'idée de les publier. Seul le compilateur Algol (qui demandait 7 passages successifs sur le 1401) fut présenté dans un séminaire de l'AFCALTI (en 1963 je crois, parce que c'était avant ma nomination en 1964 à la Faculté des sciences de Paris). Je les faisais parce qu'ils étaient nécessaires au bon fonctionnement de l'Observatoire, ou parce que j'avais besoin personnellement d'outils de travail...

2.2. L'enseignement de la « programmation »

Il fallait enseigner aux chercheurs ce qu'était l'ordinateur et comment on pouvait s'en servir. Cela impliquait ce que l'on appelait à l'époque un « cours de programmation », et qui n'était en fait que la présentation d'un langage. On en décrivait les instructions, leurs effets dans tous les cas possibles, la façon de les rédiger. La seule méthode de programmation connue était l'empirisme :
 – dessiner un organigramme
 – aligner les instructions correspondantes
 – passer en machine et chercher les erreurs.

On avait dans des bacs à cartes des « programmes d'analyse » fournis par le constructeur qui simulaient la machine sur la machine, permettant de sortir des résultats intermédiaires et de suivre la séquence d'instructions effectivement exécutée. La description de ces outils, quelque chose sur la recherche d'erreurs faisaient partie de ces cours. Ce n'était pas d'une grande difficulté conceptuelle... Mais l'intérêt pour les ordinateurs fournissait aux chercheurs une motivation suffisante pour qu'ils subissent sans protester ce que l'on est bien obligé de considérer aujourd'hui comme une caricature d'enseignement...

2.2. L'assistance en calcul numérique

Il apparut très vite que les méthodes de calcul utilisées par les chercheurs au temps des machines électromécaniques ou des règles à calcul ne pouvaient être utilisées sur ordinateur. À cette époque là, les physiciens raffolaient des « fonctions spéciales ». On en avait des tables très développées. Ayant à résoudre une équation différentielle, on cherchait comment en développer la solution en série de fonctions de Bessel, puis on la calculait avec ces tables. Il fallut expliquer qu'il valait mieux résoudre l'équation pas à pas par quelque méthode à la Runge Kutta plutôt que de chercher à calculer des fonctions de Bessel... Il fallait dire comment un polynôme se calcule mieux par l'algorithme de Horner, et que l'on ne résout pas un système linéaire par celui de déterminants.

Le message ne passait pas toujours facilement. Un géographe était venu me trouver me demandant de calculer les coefficients d'un polynôme du 28e degré passant par 29 points donnés. Le calcul était instable, et j'obtins à grand peine des coefficients sur le 650 IBM. Le géographe ne fut pas content. Ce polynôme était censé représenter le relief du Mexique suivant une certaine coupe, et celui que j'avais obtenu donnait des altitudes négatives correspondant à des fosses de plusieurs kilomètres de profondeur ! Je tentais d'expliquer que vouloir représenter le relief par un unique polynôme de degré élevé n'avait guère de sens, qu'il y avait d'autres méthodes mieux adaptées... En vain. Mon géographe trouva ailleurs une machine ayant plus de chiffres significatifs !

Les chercheurs avaient quelque génie pour dénicher les difficultés : « J'ai un petit problème... » À quoi je répondais invariablement que s'il avait été petit, ils l'auraient résolu et ne seraient pas venus me trouver. Il fallait innover. Je me trouvai ainsi propulsé dans le domaine de l'approximation des formes linéaires par des sommes de distributions.

Ainsi ma carrière scientifique se trouvait partagée entre le développement de ce que l'on appelle maintenant des produits logiciels, la formation des chercheurs, et les recherches en analyse numérique. Là, aucun doute n'était possible : c'était de la recherche scientifique, et je les publiai /ARS60/.

3. Les associations

Dès la fin des années fut constitué, sous l'impulsion d'IBM, le club des utilisateurs de 650. Il y avait là, entre autres, M. Legras, de Nancy, M. Laudet, de Toulouse, Louis Nolin de l'Institut Blaise Pascal, Évelyne Andreewsky, d'Orsay, F. Genuys d'IBM... Nous nous réunissions deux fois par an. De quoi parlions-nous ? Chacun vantait les mérites de « son » langage. Nous échangions des astuces pour l'emploi des machines. Nous discutions de la gestion du centre de calcul et de la meilleure façon d'utiliser l'ordinateur... IBM nous annonçait ses nouveaux produits... En 1963, attendant la livraison à Meudon d'un IBM 7040, je participai aux réunions de la branche française du groupe Share (utilisateurs des machines de la série 7000 IBM). Les activités en étaient sensiblement les mêmes.

L'Association Française de CALcul fut fondée en 1957. André Danjon, directeur de l'Observatoire, prolongeant la tradition des astronomes grands calculateurs à la Le Verrier, en avait assuré la première présidence. J'en fus secrétaire général quelques mois en 1961, mais je n'étais pas fait pour ce genre de travail : je démissionnai et fut remplacé par Claude Picard. L'association organisait des réunions annuelles. On y parlait des langages de programmation. Des chefs de centres de calcul expliquaient qu'ils n'autorisaient pas l'usage de Fortran, pas assez performant. D'autres se réjouissaient de voir que leur langage avait la constante « pi »... On y parlait des performances d'ordinateurs. On comparait les mérites de l'emploi des machines en libre service et de l'organisation d'un service avec programmeurs et opérateurs. On faisait beaucoup de calcul numérique.

Ceci se retrouve dans les numéros de la revue Chiffre de cette époque. Les premiers travaux de Pitrat sur l'intelligence artificielle étaient la principale exception à ces préoccupations. L'ordinateur était au centre de tout, avec les outils facilitant son usage, l'organisation de son utilisation. Seule l'analyse numérique apparaissait comme sujet de recherche scientifique.

Cet état devait se prolonger pour moi assez longtemps. Je fus invité en 1963 à Bologne  j'y parlai des avantages du libre service pour la gestion d'un centre de calcul, thème repris en écho dans la conférence suivante par Jean Carteron, président à l'époque de l'AFCALTI. Sur l'instigation de Jean Kuntzmann, je demandais et obtins un contrat de l'action concertée « calculateurs » de la DGRST, sur le thème de la résolution des équations de convolution. Je fus invité comme conférencier à l'école d'été de l'EDF et du CEA en 1963, pour parler de l'approximation des formes linéaires. C'est sur le même sujet que je fus invité comme conférencier au colloque de l'IFIP à New York en 1965.

4. Des ordinateurs à l'informatique (1964-1969)

En 1963, je fus appelé par René de Possel à participer aux enseignements de l'Institut de programmation qu'il venait de faire créer. L'année suivante, je posai ma candidature à un poste de maître de conférences. Je détaillai dans mon curriculum vitae ce que j'avais réalisé en programmation. Mais ce n'est pas là-dessus que je fus jugé, et c'est à mon livre sur la transformée de Fourier et la théorie des distributions /ARS61/ que je dus d'être accepté. Je dus payer le prix de cette élection par des cours dans le certificat d'analyse numérique, et par la direction de jeunes chercheurs dans ce domaine, dont notamment Yves Cherruault.

J'enseignai la « programmation » aux apprentis programmeurs. Je faisais un cours Algol 60 /ARS65/. Je faisais, avec Jean Suchard, des cours sur la structure des ordinateurs. J'expliquais brièvement que l'on mettait des informations dans les cases de la mémoire. J'expliquais le calcul d'instructions...

Mais l'organisation de ces enseignements avait obligé l'équipe de l'Institut de programmation : André Lentin, Louis Nolin, moi-même, les jeunes Maurice Nivat, Claude Girault, Jean-François Peerrot, Jean Berstel, à tenter de construire un corps de doctrine pour nos étudiants. À côté de l'information numérique était apparue l'information non numérique : sous ce nom, on enseignait principalement la théorie des graphes (qui devait conduire Perrot et Berstel à leur très remarquable rapport final du « contrat graphe » avec la DGRST).

La compilation s'était beaucoup développée, à cause de la multiplication des langages et ds machines. À la construction empirique de produits peu fiables commençait à se substituer des programmes fondés sur une théorie des grammaires en plein développement. Nivat étudiait « l'Algol epsilon », un noyau du langage considéré comme primitif, avec l'espoir de trouver une transformation canonique du langage complet dans le langage minimum. Claude Boussard construisait son compilateur Algol 60 à Grenoble, et Louis Bolliet devenait un des bons spécialistes français de la compilation. Ainsi ce sujet prenait ses lettres de noblesse, et commençait à apparaître comme un authentique domaine de recherche. Son enseignement était une pièce essentielle de nos cours.

Les premiers systèmes d'exploitation étaient apparus dans le début des années 60 avec le système Fortran du 704, puis avec les composants essentiels du logiciel de base sur la série suivante chez IBM : 7040, 7090. On disposait de « IOCS » (Input output control system), de systèmes de gestion de fichiers. Univac avait un système de périphérique simultané au calcul. Un nouveau type de logiciel de base était en train de se constituer chez tous les constructeurs. Nous ne pouvions passer ceci sous silence dans nos cours. Mais il n'y avait encore aucun corps de doctrine constitué, seulement des réalisations semi-empiriques dont il était bien difficile de rendre compte. Je réclamais à cette époque des chercheurs pour accepter de débroussailler ces programmes et d'en rendre compte de façon intelligible. Je m'appuyais sur cette affirmation (de Claude Bernard je crois) que l'on fait une science avec des faits comme on fait une maison avec des pierres. Il me fallait des faits étudiables. J'ai souvenir de conversations avec mes collègues français dans les couloirs de l'hôtel Hilton à New York en 1965 : je tentais de les convaincre que les systèmes d'exploitation étaient un point fondamental pour l'informatique, et qu'il était possible dès cette époque d'en donner un enseignement convenable.

En 1964 avait été constitué le comité « Éducation » de l'IFIP. L'AFCALTI m'avait désigné pour y être le représentant de la France. Nous y travaillions à la constitution d'un curriculum. Les thèmes évoqués étaient ceux que je viens de citer.

Dans cette période, s'est produit pour moi un profond changement dont j'ai encore du mal à saisir le point critique. En 1965, je vivais dans un monde scientifique où il y avait des ordinateurs, avec les problèmes de leur emploi efficace, et l'analyse numérique, domaine scientifique dans lequel on pouvait faire des recherches.

En 1962, Philippe Dreyfus avait proposé le mot « informatique ». Bien que joliment formé, euphonique, il n'avait pas eu de succès dans le monde universitaire où je vivais. René de Possel avait créé un Institut de programmation, pas d'informatique. « L'association française de calcul » était devenue « de calcul et de traitement de l'information ». Elle ne devint « d'informatique et de recherche opérationnelle » qu'après 1965. Aucun corps de doctrine ne s'était constitué qui put donner un contenu au mot.

En 1964, se tint à Bures sur Yvette une réunion du CNRS pour étudier la création d'une section spéciale « mathématiques appliquées, informatique, automatique ». J'y participai, en tant que représentant de Jean Delhaye, alors directeur de l'Observatoire. Alors que Jean Louis Rigal défendait l'idée d'une telle section, séparée des mathématiques pures, la plupart des participants pensait qu'il n'y avait pas lieu de la créer : « l'informatique est encore une science incertaine » (propos de MM. Lelong, Lichnérowicz, Fortet). Pour des raisons que je suis aujourd'hui incapable d'expliquer, je ne suis pas intervenu dans ce débat. J'étais secrétaire de séance, ce qui pouvait peut-être limiter mes possibilités d'intervention. Je représentais les astronomes, et j'étais peut-être tenu par leurs consignes. Je pense aujourd'hui que beaucoup plus fondamentalement, j'étais encore dans ce contexte où les ordinateurs étaient une technique au service des mathématiques. Je ne percevais pas encore l'informatique comme une science. Si j'avais été convaincu qu'elle en était une, rien n'aurait pu me faire taire...

Mais, comme je viens de le dire, un corps de doctrine était en train de se constituer. L'enseignement obligeait la communauté scientifique internationale à en définir le contenu. P Naur présenta « Datalogy, the science of data and data processes, and its place in education » /NAU68/ au congrès IFIP d'Edimbourg, en 1968. C'est cette même année que l'ACM publia son curriculum de computer science. La recherche sur les langages et la compilation s'était beaucoup développée. Elle démarrait pour les systèmes d'exploitation. La recherche opérationnelle et les systèmes de fichiers avient montré l'importance des graphes, de leurs représentations et de leurs parcours.

Les Américains avaient créé le terme computer science, dont ils n'avaient guère cherché à préciser le sens. L'idée était dans l'air : une science était en train de naître. Des thèses d'état se préparaient. Déjà, Claude Broussard avait soutenu la sienne, portant sur le compilateur Algol qu'il avait écrit. Mais elle s'était passée sous l'intitulé de « mathématiques », et c'était manifestement inadéquat. Claude Pair /PAI66/ avait présenté en 1966 sa thèse sur la notion de pile et son application à l'analyse syntaxique, toujours dans la même ambiguïté : les mathématiciens s'opposèrent longtemps à sa nomination comme maître de conférences, jugeant son travail insuffisant du point de vue mathématique. Il me fallut beaucoup d'efforts pour convaincre Laurent Schwartz que ce n'était pas une thèse de mathématiques. Quand en 1969 Hélène Bestougeff déposa son manuscrit de thèse sur l'enseignement assisté par ordinateur, le doyen Zamnsky me téléphona, scandalisé : « tu ne va pas laisser passer cette thèse ! Il n'y a pas de théorème. »

Il devenait indispensable que l'informatique se définît comme science, et marquât son domaine. Mais l'usage, en France du moins, n'est pas d'anticiper les phénomènes, il est de les reconnaître quand on ne peut plus faire autrement. J'allai trouver Pierre Aigrain, alors directeur des enseignements supérieurs au ministère de l'Éducation nationale, et lui parlai de nos problèmes. IL me suggéra de créer d'abord une amicale des professeurs d'informatique. L'institution suivrait... Je ne sais plus quand elle fut effectivement mise en œuvre (1967 ?), de façon partaitement informelle : pas d'existence légale, pas de statut. Nous avions des réunions apériodiques. Je me souviens seulement d'une de ces réunions qui a eu lieu à peu de distance des événements de mai 1968, et qu'elle fut sinon la dernière, du moins l'avant-dernière : la « réunionite » qui suivit mai 68 tua l'ardeur pour les réunions... Mais comme nous avions déjà eu des réunions (je me souviens de l'une d'elle tenue à l'Institut de programmation, rue du Maroc, à Paris, avec J.L. Rigal, Hennequin...), la création de cette amicale est antérieure à 1968.

La science informatique

Dans ce bouillonnement, l'idée de l'informatique comme science autonome prenait corps. Là encore, je ne peux donner de date précise pour le moment où j'en pris conscience. Je sais seulement que c'est dans l'intervalle entre 1965 et 1968. Cette année là en effet, la firme IBM m'invita à un séminaire international qu'elle avait organisé à Blaricum en Hollande. La date (fin avril, premiers jours de mai) en est gravée dans ma mémoire par un hasard de la technologie. Il y avait un système de traduction simultanée, et nous avions de petits appareils, avec des écouteurs, et un bouton pour sélectionner la langue d'écoute. Mais il avait trop de positions, et cela m'avait amené à essayer « les autres ». Une d'elle permettait d'écouter France Inter, et il m'arrivait d'avoir l'air très attentif à ce que disait l'orateur, pendant que j'entendais annoncer les premières manifestations étudiantes à Paris...

Perlis était présent. Il intervint pour protester énergiquement contre les recherches que Bernard Vauquois faisait à Grenoble sur la traduction des langues et qu'il avait présentées : aux États Unis, ces recherches avaient été stoppées à la suite du rapport de Bar Hillel, et Perlis ne voulait pas que d'autres pays en prennent avantage... J'ai eu avec Perlis une discussion privée sur l'existence de l'informatique en tant que science, car il me remit un texte où il discutait cette idée, notant que le mot computer science était mal choisi, car il n'y a pas de science d'un instrument. L'observation scientifique porte en général sur des phénomènes de la nature, pas sur un objet technique fabriqué par l'homme. Il s'appuyait sur la complexité de l'instrument et la multiplicité de ses emplois pour justifier l'existence de « la science des ordinateurs ». Je lui répondis que pour moi le mot « informatique » avait l'avantage de [ne pas] mettre l'accent sur le traitement de l'information, pas sur l'instrument. Les Scandinaves avaient fait le même choix avec le terme datalogie.

En 1966, à l'occasion de la réforme Fouchet, les universitaires français engagés dans cette affaire, et notamment Louis Bolliet à Grenoble, Michel Laudet à Toulouse et moi-même proposâmes la création d'une maîtrise d'informatique. La faculté des sciences de Paris réagit vigoureusement contre cette proposition. Jean Coulomb, géophysicien, déclara que l'informatique était comme le travail du verre, quelque chose que l'on apprend en quelques heures de travail dans un atelier. On voudrait être sûr qu'il ne reste rien de cette vue aujourd'hui, longtemps soutenue par le « centre mondial de l'informatique » de J.J. Schreiber : « un enfant de sept ans l'apprend en quelques heures, puis l'explique à ses grands parents... » J'eus beaucoup de mal à convaincre l'assemblée des professeurs que l'informatique était vraiment une science. Je ne suis pas sûr d'y être vraiment parvenu. Mais le doyen Marc Zamnsky trancha en notre faveur, et la maîtrise d'informatique fut créée en 1968.

En juin 1968, je participai comme tout le monde à d'innombrables et insupportables réunions. Je n'y étais parfois présent que de corps, et mon esprit vagabondait. Je me dis alors qu'il serait bon d'écrire un livre pour présenter l'informatique comme une science, la définir clairement, en montrer les tenants et aboutissements, notamment dans ses grandes applications techniques. Je fis le plan d'un livre, et commençais à travailler sérieusement à la description de l'informatique comme science. La définition m'en paraissait évidente : science du traitement de l'information.

Mais je butais sur la notion d'information. IL fallait la préciser, sinon en quoi l'informaticien se distinguerait-il du journaliste ou de l'historien ? Je restais gêné par un point très faible de mes cours. Je disais que l'on range des informations dans les cases de la mémoire. Mais pourquoi le contenu d'une case ne peut-il être identifié comme nombre, suite de lettres ou instruction de la machine ? Pire que cela, pourquoi peut-on prendre une instruction, la considérer comme un nombre et faire dessus une opération arithmétique, la remettre en place et la considérer à nouveau comme une instruction. Je prenais la précaution de montrer que l'instruction comporte une adresse, qui est un entier, et que c'est sur cet entier que l'on fait une addition. Mais Louis Nolin dénonçait le calcul d'instructions, demandant ce que pouvait bien représenter le cosinus d'une instruction... L'objection me paraissait déloyale : qui aurait eu l'idée de prendre le cosinus d'une instruction ?... Mais j'étais obligé de reconnaître que sur le plan des principes il avait raison.

L'enseignement des langages machines posait le problème de l'adressage indirect. Il fallait habituer les étudiants aux concepts d'adresse et contenu d'une case de mémoire, vite renommés « noms » et « valeur ».

Et soudain, au Chambon sur Lignon, pendant les vacances de Pâques 1969, les deux notions se télescopèrent. Pourquoi me suis-je demandé si l'information était un nom ou une valeur ? la réponse fut instantanée : elle est un nom. La valeur associée au nom, et susceptible de changer, comme le contenu d'une case de la mémoire, c'est la signification qui lui est attachée. Tout se mettait immédiatement en place. Mes problèmes quant à la signification des informations en mémoire étaient résolus. Toutes les questions que, comme tout le monde, je m'étais posées sur la situation réciproque du cerveau humain et de ce que l'on appelait « des cerveaux électroniques » étaient résolues. Je tenais ma définition de l'informatique, ce qui nous différencie des historiens ou des journalistes. Ce fut une illumination comme il en arrive peu dans la vie d'un homme, quelque chose dont je demeure profondément marqué. Non pas le résultat d'une longue suite de « dérivations », ni de la conséquence inéluctable d'un raisonnement logiquement conduit, mais quelque chose qui apparaît brutalement là où on ne le cherchait pas, et qui s'impose instantanément comme vrai.

Il me fallut réécrire deux chapitres de mon livre /ARS70a/. Mais il prenait une dimension nouvelle, imprévue mais combien plus solide.

Avec celà, je pouvais partir en guerre. J'eus presque aussitôt la possibilité de diffuser mes idées au plan international. Invité par François Bédarida, alors directeur de la maison française à Oxford, j'exposai ma thèse devant les étudiants de cette université. Le colloque organisé par l'IFIP, sous l'égide de l'OCDE, à Sèvres en 1970, m'offrit une tribune restreinte /SEV70/. Plus large était celle du premier colloque mondial WCCE (world conference on computer and education) de l'IFIP à Amsterdam en 1970, où j'avais été invité comme conférencier /ARS70b/.

L'idée de l'informatique comme science progressait en France. Au comité consultatif des universités, une section avait été créée en 1970 dans le groupe des mathématiques, regroupant analyse numérique, informatique et statistique. Alors enseignant à l'Université de Montréal, je revins à Paris en janvier 1971 pour la première réunion de cette section. Nous discutâmes d'inscription sur les listes d'aptitude, avec les remarques habituelles sur l'incompétence en mathématiques des candidats informaticiens. J'obtins qu'ils soient inscrits sur les listes avec la mention (restrictive ou infamante aux yeux des mathématiciens ?) « informatique » derrière leur nom. On marquait par là qu'ils ne pouvaient être recrutés sur un poste de mathématiques. Mais on affirmait du même coup l'originalité de l'informatique.

Les réunions de cette section furent souvent décevantes. Tout se jouait en termes de rapport de force entre l'analyse numérique et la statistique, liguées contre l'informatique. L'absence d'un informaticien pouvait faire basculer un vote. Les propositions de nomination au grade de « professeur à titre personnel » se dicutaient avec le groupe des mathématiciens, et les places étaient chères. Je me souviens avoir défendu la candidature de Jean Vignes. Un mathématicien se leva pour déclarer que ses travaux ne valaient rien du point de vue mathématique (comme cela s'était produit pour Claude Pair ou Hélène Bestougeff). Je réussis à faire valoir le point de vue que ce n'était pas comme mathématicien que je demandais sa nomination, mais comme informaticien. Et pour marquer le coup, durant la discussion de la candidature suivante, je me levais pour déclarer que les travaux du candidat ne valaient rien point de vue informatique. Ce fut un éclat de rire général, mais la leçon avait porté. Le groupe s'habitua aux informaticiens.

J'eus encore des difficultés à l'Université Paris VI avec les thèses. Bien avant que ne soit généralisé le système de commission des thèses destinée à juger de la valeur des manuscrits avant soutenance, les mathématiciens s'étaient dotés d'un tel mécanisme. Ils voulaient que les thèses d'informatique leur soient soumises. Ils étaient prêts à accepter qu'un informaticien figurât dans la commission. Je m'y opposai avec énergie (et succès) : l'informatique n'a pas plus de lien avec les mathématiques qu'avec la physique (pour la circuiterie) ou la chimie (pour les composants) ou la linguistique (pour les langues).

Je dois dire qu'après cette période un modus vivendi s'est instauré entre l'informatique et les mathématiques pures dans mon université, et nous nous entendons fort bien. Nous nous savons différents, et les relations sont devenues excellentes. Les choses sont moins claires s'agissant des mathématiques appliquées, à cause du domaine frontière du calcul numérique qui participe des deux disciplines.

Depuis 1970, l'idée que l'informatique est une science en soi a apparemment beaucoup progressé. En 1974, Jean Kuntzmann, dans son livre Apport de l'informatique à l'enseignement des mathématiques, a proposé une réfutation de mes idées. L'informatique ne saurait être une science du traitement de l'information considérée comme le support formel des connaissances, parce que le passage de la connaissance à l'information qui la représente est un appauvrissement, et que l'on ne peut tirer le plus du moins. Il n'y a qu'une science là-dedans, les mathématiques, et des techniques de calcul à son service. Mais cette discussion contenait sa propre réfutation, parce que précisément les résultats d'un traitement informatique posent souvent un difficile problème d'interprétation : ce qui a été perdu à l'entrée l'est définitivement, et la signification du résultat est ambiguë. J'ai discuté ceci dans mon dernier livre /ARS87/.

M. Lemoigne s'est lui aussi opposé à mes idées, voyant une science plutôt du côté de la « systémique » que de l'informatique. Je n'ai pas connaissance d'autres tentatives de réfutation de mes idées. Au demeurant, elles étaient en parfait accord avec la définition qu'accepta l'Académie française en 1966 : science du traitement rationnel de l'information considérée comme le support formel de cette connaissance... Je n'ai pas réussi à savoir si l'auteur de cette définition (Philippe Dreyfus) avait pesé tous ses mots, ou agi suivant une intuition prophétique. J'ai cru comprendre, par une discussion avec lui, qu'il regrettait cette définition. S'il en est ainsi, il s'agirait vraiment d'une intuition fantastique.

De l'empirisme à la science en programmation

Dans le temps où l'on passait de techniques d'emploi des ordinateurs à la science informatique, la programmation subissait une mutation comparable. Comme je l'ai dit plus haut, elle fut d'abord un simple empirisme. Il fallait « voir » les actions à exécuter pour faire résoudre un problème par un ordinateur, mettre cela en ordre par un organigramme, coder le tout, puis l'essayer en machine. Du travail purement artisanal. En 1966, P. Naur proposait une première approche de la validation d'un programme par des vues instantanées de l'état des variables /NAU66/. Ceci devait conduire Floyd à l'idée d'assertions permettant de donner un sens à un programme /FLO67/. Travaillant sur les problèmes de synchronisation de processus parallèles, Dijkstra introduisit la méthode par raffinements successifs /DIJ68a/, qui devait déboucher sur la programmation descendante /NAU69/, /WIR71/.

La stylistique se développa avec la critique de l'usage des GOTO /DIJ68b/. Mais il n'était pas évident que l'on pouvait s'en passer. les théoriciens s'emparèrent de l'affaire /FK71/ /AM71/, montrant qu'un programme avec GOTO ne peut être réécrit avec l'instruction TANT QUE sans recopie ou adjonction de variables supplémentaires. Mais ces travaux avaient mis en évidence les faiblesses de l'empirisme en programmation. Le colloque sur the high cost of software tenu à Monterey en 1973 /MON73/ mis en évidence tous les défauts de l'empirisme : les programmes coûtent trop cher, ils ne sont ni fiables, ni modifiables ; ils ne sont jamais produits à temps...

Une programmation raisonnée fit son apparition, d'abord avec la programmation structurée de Edsger Dijkstra /DDH72/, puis avec la programmation systématique de Wirth /WIR73/. Pendant ce temps, les travaux théoriques se poursuivaient. Tony Hoare donnait un fondement aux méthodes de preuves de programme /HOA69/. L'étude des structures de contrôle provoqua un foisonnement d'articles dont on trouve une étude détaillée dans la synthèse finale qu'en firent Ledgard et Marcotty en 1975 /LM75/.

J'avais introduit les transformations syntaxiques de programmes en 1974, et montré à la même époque l'emploi des suites récurrentes avec un opérateur de minimisation comme langage de programmation /ARS74/. À partir de là se développa l'emploi des transformations comme méthode constructive en programmation. Ces outils me permirent en particulier la transformation générale des procédures récursives en procédures itératives /ARS77/, débouchant sur la programmation analytique, qui est à l'approche intuitive ce qu'était la géométrie analytique à la géométrie pure /ARS83/.

Dans cette période d'intense activité de recherche, la programmation subit une mutation profonde, les titres de trois livres montrent l'évolution des esprits. En 1966, Donald Knuth commença la publication de sa somme The art of computer programming /KNU68/. En 1976, Dijkstra publia A discipline of programming /DIJ76/, avec la nuance hypothétique qu'introduit l'article indéfini anglais. En 1981, David Gries écrivit The science of programming /GRI81/ avec cette fois l'article défini. Certes, ce n'est parce que c'est écrit sur ces livres que c'est vrai, mais du moins est-ce révélateur d'un changement de regard sur la programmation.

Parce que l'information était perçue comme science, le colloque de Sèvres /SEV70/ avait recommandé son introduction dans l'enseignement secondaire, en tant que discipline à part entière, parce que sa pratique développe des aptitudes algorithmiques, organisationnelles et opératoires. Le colloque insistait : les élèves devront passer sur ordinateur les programmes qu'ils auront eux-mêmes écrits (on avait peur d'une informatique au tableau noir). J'insiste là-dessus, par ce que l'on a depuis fait dire à ce colloque qu'il n'avait pas reconnu l'informatique comme discipline. C'est absolument faux.

La France n'a pas suivi à l'époque ces recommandations, préférant, sous la conduite de Wladimir Mercouroff et Jacques Hebenstreit, développer l'utilisation de l'informatique dans l'enseignement des autres disciplines (expérience dite « des 58 lycées » dont un bilan positif peut être dressé grâce aux actes du deuxième colloque WCCE de l'IFIP à Marseille en 1975 /WCCE75/). Le rapport de Jean-Claude Simon en 1979 /SIM79/ reprit les conclusions de Sèvres, avec ses objectifs pédagogiques rendus réalisables par le développement de la science de la programmation, et demanda un enseignement obligatoire de la science informatique dans les lycées. On sait que le gouvernement, prudent, mit en place en 1980 un enseignement optionnel de l'informatique, perçue comme une science, et avec les objectifs pédagogiques donnés à Sèvres en 1970. Cette expérience, commencée à la rentrée 1981, s'est depuis élargie et banalisée pour toucher le tiers des lycées français, et donner lieu à une épreuve de baccalauréat qui se passera pour la première fois le 1 juin 1988.

7. La science informatique aujourd'hui

Le statut de l'informatique dans les universités et les IUT est solidement établi. Mais il ne faudrait pas croire pour autant que l'idée que l'informatique est une science soit définitivement et universellement admise. Il y a une OPA permanente de diverses disciplines sur l'informatique, un peu de la physique, mais principalement des mathématiques. L'informatique est vue comme la programmation, et celle-ci comme BASIC. Durant tout le temps que j'ai passé à l'École Normale Supérieure, je me suis heurté à cette idée, et du laboratoire d'informatique expérimentale que j'y avais développé avec Jean Gastinel, il ne reste qu'une section de mathématique et informatique... Il n'y a pas d'informatique au Collège de France, et pas d'avantage à l'Académie des sciences.

Présentant mes idées dans un séminaire au collège de France en janvier 1988, René Thom m'objecta que l'informatique est une technologie, la seule science en cause est celle du monoïde libre. Je ne suis pas certain de l'avoir convaincu en lui disant que nous utilisons cette algèbre comme les physiciens utilisent les fonctions trigonométriques... Je n'arrive pas à convaincre les proviseurs de lycée que tout professeur de mathématiques n'est pas naturellement capable d'enseigner l'informatique, et que la compétence dans une discipline n'implique pas la compétence dans l'autre.

Le développement de l'informatique théorique pose d'ailleurs un problème délicat. Comme toute science, l'informatique ne peut progresser sans théorie. L'informatique théorique est pour elle une nécessité vitale. Mais elle n'est pas toute l'informatique. Elle facilite, pour les esprits non avertis, la confusion avec les mathématiques. L'affaire n'est pas nouvelle. Il y a, entre la physique et les mathématiques, un continuum par la physique théorique et la physique mathématique. Il en va de même en mécanique, avec à un bout des expérimentateurs en mécanique des fluides, et à l'autre bout, des mathématiciens purs. Mais ces disciplines sont anciennes et leur statut solidement établi. Il faudra du temps pour que l'informatique parvienne à s'établir comme discipline autonome, et à être reconnue comme telle sans que l'on profite de tel ou tel problème frontière pour en nier la réalité.


Bibliographie

Les articles ou livres qui suivent ne sont pas donnés pour leur contenu scientifique, mais comme jalons dans l'histoire de la pensée informatique, pour moi principalement, mais aussi pour la communauté scientifique internationale. Ils sont classés par date.

/ARS59/ ARSAC Jacques
Essais de détermination des très faibles diamètres apparents en radioastronomie, Optica Acta, vol. 6, no1, janvier 1959, p. 77-98.
Correction approchée de l'effet de lobe en radioastronomie, Optica Acta, vol. 6, no2, avril 1959, p. 103-110.
/ARS60/ ARSAC Jacques, SIMON Jean-Claude
Représentation d'un phénomène physique par des sommes de translatées, Annales de radioélectricité, vol. 15, No 61, juillet 1960, p. 217-227.
/ARS61/ ARSAC Jacques
Transformation de Fourier et théorie des distributions, Dunod, Paris, 1961.
/ARS65/ ARSAC J., LENTIN A., NIVAT M., NOLIN L.
ALGOL, théorie et pratique, Gauthier-Villars, Paris, 1965.
/PAI66/ PAIR Claude
Étude de la notion de pile et application à l'analyse syntaxique, Université de Nancy, 1966.
/NAU66/ NAUR Peter
Proof of algorithms by general snapshots, BIT 6, 4, 1966, 310-316.
/FLO67/ FLOYD R.W.
Assigning meaning to programs, Proceedings of symposia in applied mathematics, vol. 19, American math. society, 1967, 19-32.
/DIJ68a/ DIJKSTRA E.W.
A constructive approach to the problem of program correctness, BIT 8, 3, 1968, 174-186.
/DIJ68b/ DIJKSTRA E.W.
GOTO statements considered as harmful, Comm. ACM, 11, 3, mars 1968, 147-148.
/KNU68/ KNUTH D.
The art of computer programming, vol. 1, Addison Wesley, 1968.
/NAU68/ NAUR P.
Datalogy, the science of data and data processes and its place in education, Proc. of IFIP congress 1968, Applications 2, Booklet G, 48-52.
/HOA69/ HOARE C.A.R.
An axiomatic basis for computer programming, Comm. ACM, vol. 12, 1969, p. 576-583.
/NAU69/ NAUR P.
Programming by action clusters, BIT 9, 3, 1969, p. 250-258.
/ARS70a/ ARSAC Jacques
La science informatique, Dunod, 1970.
/ARS70b/ ARSAC Jacques
Informatics, IFIP World conference on computer and education, Amsterdam, 1970 (North-Holland)
/SEV70/ L'enseignement de l'informatique à l'école secondaire,
Colloque IFIP-OCDE, Sèvres, 1970
Publications de l'OCDE, Paris, 1971.
/AM71/ ASHCROFT E., MANNA Z.
The translation of GOTO programs to WHILE programs, Proc. of the IFIP conference 1971, North Holland, p. 250-255.
/FK71/ FLOYD R.W., KNUTH D.E.
Notes on avoiding GOTO statements, Information processing letters, 1, 1, 1971, p. 23-31.
/WIR71/ WIRTH N.
Program development by stepwise refinements, Comm. ACM 14, 4, avril 1971, 221-227.
/DDH72/ DAHL O.J., DIJKSTRA E.W., HOARE C.A.R.
Structured programming, Academic Press, Londre, 1972.
/MON73/ The high cost of software,
Proc. of a symposium SRI Menlo Park, 1973, editeur B.W. Boehm.
/WIR73/ WIRTH N.
Systematic programming, Prentice Hall, 1973.
/ARS74/ ARSAC Jacques
L'organisation des programmes
Interprétation directe d'un algorithme, Journées IRIA sur la programmation, p. 53-66 et p. 67-79, 1974.
/LM75/ LEDGARD F.H., MARCOTTY M.
A genealogy of control structures, Comm. ACM, vol. 18, novembre 1975.
/WCCE75/ Proc. of the IFIP word conference on computer and education
North-Holland, 1975.
/DIJ76/ DIJKSTRA E.W.
A discipline of programming, Prentice Hall, 1976.
/ARS77/ ARSAC Jacques
La construction de programmes structurés, Dunod, Paris, 1977.
/SIM79/ SIMON Jean Claude
L'éducation et l'informatisation de la société, La documentation française, Paris, 1980.
/GRI81/ GRIES DAvid
The science of programming, Springer-Verlag, Berlin, 1981.
/ARS83/ ARSAC Jacques
Les bases de la programmation, Dunod, Paris, 1983.
/ARS87/ ARSAC Jacques
Les machines à penser, Le Seuil, Paris, 1987.

 [Haut de cet article – This paper Top] – Décembre 2006
 [Conférences Histoire de l'Informatique][ACONIT]