Je continue la série sur les femmes en informatique. Après Ada Lovelace, voici une autre héroïne : Grace Murray Hopper.
Une femme au service de son pays
Grace Murray est née en 1906. Étudiante brillante, elle est diplômée en mathématique et en physique par l’université de Yale en 1930, et elle épouse Vincent Hopper. Elle défend sa thèse de doctorat dans la même université en 1934. Elle enseigne alors les mathématiques à l’université Vassar, un college d’élite réservé aux femmes. En 1941, elle y devient associate professor.
Sa carrière semble toute tracée mais un événement mineur vient troubler cette routine : la deuxième guerre mondiale. En 1943, peut-être lassée d’enseigner aux jeunes filles de l’élite new-yorkaise, elle intègre la division féminine de la réserve de la marine américaine. Après ses classes, elle est affectée au projet de calculateur de l’université de Harvard. Elle travaille sur la programmation du premier calculateur automatique – le Mark I – conçu par IBM à Harvard.

À la fin de la guerre, elle tente de poursuivre sa carrière militaire dans la marine mais elle est refusée à cause de son âge. Elle refuse un poste permanent de professeur à Vassar et préfère rester dans la réserve pour continuer à faire de la recherche dans le laboratoire d’informatique de Harvard. Cependant, en 1949, elle décide de rejoindre le secteur privé et va travailler pour l’entreprise fondée en 1947 par Eckert et Mauchly (les créateurs de l’ENIAC, le premier véritable ordinateur électronique). Durant les années 1950, Grace Hopper travaille sur UNIVAC, le premier ordinateur commercial disponible aux États-Unis. Elle conçoit le premier compilateur (appelé A-0). Elle concevra ensuite plusieurs compilateurs commerciaux, dont celui pour le langage FLOW-MATIC (aussi appelé B-0). Ce langage aura une très grande influence sur l’un des premiers langages de programmation modernes.
En 1959, devant l’augmentation des puissances de calcul et la demande croissante des entreprises et de l’administration américaine, il devient urgent de définir un langage de programmation standardisé. Ce langage devra être business oriented, c’est-à-dire satisfaire les besoins en gestion et calcul d’une entreprise ou d’une administration moderne. Le travail de Grace Hopper aura une énorme influence sur le résultat, appelé COBOL. Très populaire dans les années 1960 à 1980, ce langage est toujours employé de nos jours.
Dans les années 1960, à la tête du groupe des langages de programmation au sein du bureau des systèmes d’information de la marine, Grace Hopper développe des tests de standardisation pour le langage COBOL et son compilateur. Son travail forcera les différents fabricants d’ordinateur à standardiser leur langage.
Elle participe encore à de nombreux projets civils et militaires. Elle est rappelée par la Marine américaine en 1966, retourne encore au service actif en 1972 et est élevée au grade de capitaine en 1973. En 1983, son grade de commodore est renommé en vice-amiral (une étoile). Elle reçoit la Defense Distinguished Service Medal en 1986. Au moment de son départ définitif de la marine, elle en était le plus vieil officier supérieur. Elle travaille encore pour l’entreprise DEC jusqu’à sa mort en 1992. Elle est enterrée au cimetière national d’Arlington en Virginie, avec les honneurs militaires.
Une pionnière de l’industrie informatique
Pendant longtemps, la programmation consistait à dire à l’ordinateur ce qu’il devait faire. Il s’agissait de donner une suite d’instructions très simples qui indiquait pas à pas l’opération à effectuer. À l’époque, tout comme Ada Lovelace, on devait donc de manière fastidieuse écrire une longue liste d’instructions. Ce niveau de détail avait beaucoup d’inconvénients.
Avec les premiers ordinateurs généralistes, une propriété intéressante est apparue. Ces ordinateurs sont ce qu’on appelle des machines de Turing (je simplifie un peu cette propriété). Elles sont théoriquement capables de simuler n’importe quel autre algorithme. Cela signifie qu’on peut écrire un programme qui simule l’exécution d’une autre machine (qui elle même exécute un programme). On peut aussi écrire un programme qui écrit un autre programme. C’est ce qu’on appelle un compilateur.
Plutôt que d’écrire une liste d’instructions simples, on peut définir une seule instruction complexe (par exemple, parcourir les éléments d’un tableau ou afficher un bouton dans une fenêtre) pour réaliser une tâche qui a un sens pour le programmeur. Comme l’ordinateur ne comprend rien à ces instructions, le compilateur est chargé de les traduire en une liste d’instructions pour la machine. C’est grâce à cela qu’ont été conçus les premiers langages de programmation.
Avant l’apparition des premiers compilateurs, la programmation dépendait du matériel. À chaque génération, à chaque nouveau calculateur, on changeait de langage et il fallait tout recommencer. Les compilateurs ont permis d’écrire pour plusieurs machines, de transformer et d’adapter les programmes au fur et à mesure des besoins. C’est à cette innovation d’une grande importance pour l’industrie informatique naissante que Grace Hopper a largement contribué. Le fait que de nombreux programmes en COBOL sont toujours en service aujourd’hui prouve l’importance de son travail.
Pour terminer, voici une interview amusante de Grace Hopper par Dave Letterman en 1986.
— How did you know so much about computers then?
— I didn’t. It was the first one.
Cette femme était vraiment formidable.