Aller au contenu principal
Bethemesh
BiographieHistoire de l’informatique

Grace Hopper : des premiers compilateurs à COBOL

Découvrez comment Grace Hopper a contribué à transformer la programmation en faisant traduire des instructions plus lisibles vers le langage des machines.

Publié le 3 août 2026Lecture : 8 minPar Équipe Bethemesh
Débutant
Portrait historique de Grace Hopper
Afficher le sommaire
  1. Apprendre à programmer avant que le métier existe
  2. Ce que l’histoire du papillon explique réellement
  3. Pourquoi A-0 automatise une partie de la programmation
  4. FLOW-MATIC rapproche le code du travail des entreprises
  5. COBOL est une réalisation collective
  6. Pourquoi la portabilité exige plus qu’un langage commun
  7. De la conception des langages à leur normalisation
  8. Chronologie
  9. Questions fréquentes
  10. Grace Hopper a-t-elle inventé le premier compilateur ?
  11. A-t-elle créé COBOL seule ?
  12. A-t-elle inventé le mot « bug » ?
  13. Pourquoi FLOW-MATIC est-il important ?
  14. Pourquoi COBOL est-il encore présent ?
  15. Quel lien unit Grace Hopper et John Backus ?

Les premiers ordinateurs n’exécutent pas des mots comme READ, ADD ou PAYROLL. Ils comprennent des codes numériques étroitement liés à leur matériel. Grace Hopper consacre sa carrière à réduire cette distance entre l’intention humaine et les opérations de la machine.

Son apport ne se résume ni à une invention isolée ni à la création solitaire de COBOL. Elle programme l’un des premiers grands calculateurs automatiques, dirige des travaux précurseurs sur la traduction des programmes, développe avec son équipe un langage destiné aux données commerciales et défend la normalisation. Le fil commun est clair : un programme devrait exprimer le problème à résoudre plutôt que les particularités d’un ordinateur.

Apprendre à programmer avant que le métier existe

Grace Brewster Murray naît en 1906 à New York. Elle étudie les mathématiques et la physique au Vassar College, puis obtient en 1934 un doctorat de mathématiques à Yale. Elle enseigne ensuite à Vassar jusqu’à ce que la Seconde Guerre mondiale transforme son parcours.

Elle rejoint la réserve de la marine américaine en 1943. L’année suivante, elle est affectée à l’équipe de Howard Aiken à Harvard, qui exploite l’IBM Automatic Sequence Controlled Calculator, plus connu sous le nom de Harvard Mark I.

Le Mark I est une machine électromécanique longue de plusieurs mètres. Il lit ses instructions sur bande perforée et automatise de longues suites de calculs. Hopper apprend à le programmer, produit des tables destinées à la marine et participe à la rédaction de son manuel.

Ce travail oblige l’équipe à formaliser une activité encore nouvelle : décomposer un problème, organiser les instructions, vérifier les résultats et réutiliser des séquences. Programmer commence à devenir un métier distinct de la construction du matériel.

Ce que l’histoire du papillon explique réellement

En 1947, l’équipe du Harvard Mark II trouve un papillon de nuit coincé dans un relais. L’insecte est fixé dans le journal du laboratoire avec une note évoquant le premier cas réel de « bug ».

Cette anecdote est souvent transformée en affirmation selon laquelle Hopper aurait inventé le mot. Le terme désignait pourtant déjà une défaillance technique au XIXe siècle. Le journal n’établit pas non plus qu’elle a personnellement retiré l’insecte. Le jeu de mots montre surtout que bug et debugging appartenaient déjà au vocabulaire des équipes informatiques.

La nuance correspond mieux à son influence. Hopper ne doit pas sa place dans l’histoire à cette anecdote, mais à son travail pour rendre la programmation compréhensible, transmissible et indépendante du matériel.

Pourquoi A-0 automatise une partie de la programmation

En 1949, Hopper rejoint l’Eckert-Mauchly Computer Corporation, bientôt intégrée à Remington Rand, qui développe l’UNIVAC I. Les entreprises veulent traiter des fichiers de clients, de stocks ou de paie, mais programmer chaque opération en code machine reste lent et coûteux.

Hopper et son équipe développent au début des années 1950 le système A-0. Le programmeur identifie des sous-programmes disponibles ; A-0 retrouve leur code, les charge et organise leur utilisation. Selon les définitions modernes, ce système ressemble autant à un chargeur et à un éditeur de liens qu’à un compilateur complet.

Il est donc plus précis de parler de l’un des premiers systèmes de compilation que de « premier compilateur » sans nuance. Son importance ne dépend pas de ce classement : A-0 montre qu’un programme peut préparer automatiquement un autre programme pour son exécution.

Les systèmes A-1, A-2 puis MATH-MATIC prolongent cette démarche. Hopper défend alors une idée contestée : un ordinateur peut traduire une notation adaptée aux humains vers ses propres instructions avec assez de fiabilité pour un usage réel.

FLOW-MATIC rapproche le code du travail des entreprises

Les langages scientifiques manipulent surtout des formules. Les applications commerciales décrivent plutôt des opérations comme lire un fichier, comparer des enregistrements, calculer un total ou imprimer un rapport. Hopper estime que leur notation doit refléter ce vocabulaire.

Son équipe développe FLOW-MATIC au milieu des années 1950. Ses instructions emploient des mots anglais et décrivent des flux de données. Cette lisibilité ne dispense pas d’apprendre à programmer, mais elle rapproche le code des procédures connues par les analystes et les entreprises.

FLOW-MATIC apporte aussi une leçon de portabilité. Si une instruction exprime une opération métier plutôt qu’une particularité matérielle, un compilateur peut la traduire pour plusieurs ordinateurs. Les programmes deviennent moins dépendants de leur constructeur.

Cette approche prépare directement les discussions qui mèneront à COBOL.

COBOL est une réalisation collective

En 1959, fabricants, administrations et utilisateurs se réunissent au sein de CODASYL, le Committee on Data Systems Languages. Leur objectif est de définir rapidement un langage commun pour les applications de gestion, utilisable sur des machines de marques différentes.

Hopper participe à la première réunion et les concepts de FLOW-MATIC influencent fortement le projet. Elle défend depuis plusieurs années les instructions proches de l’anglais et l’indépendance vis-à-vis des machines. La spécification de COBOL est néanmoins produite par des comités, avec une contribution directe du groupe chargé de sa rédaction initiale.

Dire que Hopper a inventé COBOL seule efface cette coopération. Son rôle est celui d’une pionnière, d’une source technique et d’une promotrice déterminante. Elle contribue ensuite à l’adoption et à la normalisation du langage, notamment au service de la marine.

COBOL permet aux organisations de conserver leurs programmes lorsque leur matériel change. Cette stabilité explique sa longévité : banques, assurances et administrations y ont accumulé des décennies de règles métier coûteuses à remplacer.

Pourquoi la portabilité exige plus qu’un langage commun

Écrire une spécification ne suffit pas à rendre les programmes portables. Deux constructeurs peuvent interpréter différemment une règle, accepter des extensions incompatibles ou produire des résultats divergents dans les cas limites. Pour une administration qui change de machine, le coût de ces écarts peut annuler une partie des bénéfices promis par COBOL.

Hopper insiste donc sur la validation des compilateurs. Des suites de programmes contrôlent qu’une implantation reconnaît les constructions prévues et leur donne le comportement attendu. Cette démarche ne démontre pas qu’un compilateur est exempt de toute erreur ; elle établit un niveau de conformité mesurable et comparable.

Le problème révèle la continuité de son travail. A-0 automatise l’assemblage de sous-programmes. FLOW-MATIC rapproche les instructions du vocabulaire des entreprises. COBOL fournit un langage partagé. Les tests de validation cherchent enfin à garantir que ce langage partagé conserve le même sens d’une machine à l’autre.

La normalisation peut paraître moins inventive que la création d’une syntaxe. Elle détermine pourtant si une idée devient une infrastructure durable ou reste attachée à un constructeur. L’influence de Hopper tient aussi à cette transformation d’un prototype en pratique industrielle contrôlable.

De la conception des langages à leur normalisation

Hopper poursuit ses responsabilités chez Remington Rand puis Sperry Rand. Elle publie, forme des programmeurs et présente les langages comme des outils permettant d’élargir l’accès aux ordinateurs.

Après avoir quitté la réserve en 1966, elle est rappelée en service actif en 1967. La marine doit rendre ses programmes COBOL compatibles et vérifiables sur plusieurs systèmes. Hopper travaille sur les procédures de validation et de normalisation, problème moins visible que la création d’un langage mais essentiel à sa portabilité réelle.

Elle reste en service jusqu’en 1986 et prend sa retraite avec le grade de contre-amirale. Ses conférences rendent les échelles informatiques concrètes : elle utilise notamment des morceaux de fil correspondant à la distance parcourue par la lumière en une nanoseconde pour expliquer le coût physique du temps de calcul.

Hopper meurt en 1992. Son héritage se trouve dans les compilateurs, mais aussi dans une conviction devenue structurante : les langages doivent rapprocher les programmes des problèmes humains, et les normes doivent empêcher ce progrès de rester prisonnier d’une seule machine.

Chronologie

  • 1906 : naissance de Grace Brewster Murray à New York.
  • 1928 : diplôme de mathématiques et de physique au Vassar College.
  • 1934 : doctorat de mathématiques à Yale.
  • 1943 : entrée dans la réserve de la marine américaine.
  • 1944 : affectation à l’équipe du Harvard Mark I.
  • 1947 : découverte du papillon dans un relais du Mark II.
  • 1949 : arrivée chez Eckert-Mauchly pour travailler sur l’UNIVAC.
  • 1952 : présentation des travaux sur A-0.
  • 1955–1959 : développement de FLOW-MATIC avec son équipe.
  • 1959 : participation aux premières discussions de CODASYL.
  • 1960 : publication de la première spécification COBOL issue du travail des comités CODASYL.
  • 1967 : rappel par la marine pour contribuer à la normalisation de COBOL.
  • 1986 : retraite définitive avec le grade de contre-amirale.
  • 1992 : décès à Arlington, en Virginie.
  • Aujourd’hui : compilateurs, langages portables et normes prolongent les problèmes auxquels elle a consacré sa carrière.

Questions fréquentes

Grace Hopper a-t-elle inventé le premier compilateur ?

Elle dirige le développement d’A-0, souvent présenté comme le premier compilateur. Sa fonction correspond aussi à ce que l’on nommerait aujourd’hui un chargeur ou un éditeur de liens. Il est plus exact de parler de l’un des premiers systèmes de compilation.

A-t-elle créé COBOL seule ?

Non. COBOL est conçu collectivement par les comités de CODASYL. Les idées de Hopper et FLOW-MATIC exercent une influence directe, et elle joue ensuite un rôle important dans l’adoption, la validation et la normalisation du langage.

A-t-elle inventé le mot « bug » ?

Non. Le mot était déjà utilisé pour les défauts techniques. Le papillon découvert dans le Mark II a produit un jeu de mots mémorable sur le premier « véritable » bug, mais il n’est pas à l’origine du terme.

Pourquoi FLOW-MATIC est-il important ?

FLOW-MATIC montre qu’un langage destiné aux entreprises peut employer des mots proches de leurs procédures tout en restant traduisible par une machine. Il influence directement COBOL.

Pourquoi COBOL est-il encore présent ?

De nombreuses organisations ont accumulé en COBOL des décennies de règles métier éprouvées. Remplacer ces systèmes comporte des coûts et des risques élevés. La portabilité recherchée dès l’origine a aussi permis au code de survivre à plusieurs générations de matériel.

Quel lien unit Grace Hopper et John Backus ?

Tous deux cherchent à éloigner la programmation du code machine dans les années 1950. Hopper s’oriente vers les traitements commerciaux avec FLOW-MATIC et COBOL ; Backus dirige l’équipe de FORTRAN pour le calcul scientifique.

Sources et références

  1. 1.Naval History and Heritage Command --- Grace Murray Hopper
  2. 2.Smithsonian --- Grace Hopper: The Navy and Computers
  3. 3.Computer History Museum --- Grace Murray Hopper
  4. 4.Computer History Museum --- Oral History of Grace Hopper
  5. 5.Smithsonian --- Log Book With Computer Bug

Collection

Langages de programmation

  1. 01Grace Hopper : des premiers compilateurs à COBOL
  2. 02John Backus : FORTRAN, la notation BNF et le refus du code machine
  3. 03Dennis Ritchie : le langage C au cœur d'Unix
  4. 04FORTRAN : prouver qu'un compilateur peut rivaliser avec l'assembleur
  5. 05Le langage C : rendre les systèmes portables sans masquer la machine
  6. 06Niklaus Wirth : de Pascal à Oberon, concevoir par la simplicité
  7. 07Bjarne Stroustrup : concevoir C++ sans renoncer aux performances
  8. 08Pascal : apprendre à programmer en rendant la structure visible
  9. 09C++ : de C with Classes à un langage généraliste
  10. 10La programmation orientée objet : objets, messages et abstractions réutilisables
  11. 11Guido van Rossum : créer Python pour rendre le code lisible
  12. 12Brendan Eich : JavaScript, du prototype de Netscape au standard du Web
  13. 13James Gosling : l'ingénieur à l'origine de Java
  14. 14Python : la lisibilité, les batteries incluses et un écosystème mondial
  15. 15Java : écrire une fois, exécuter partout
  16. 16JavaScript : le langage qui a rendu le Web interactif
  17. 17Ken Thompson : d’Unix au langage Go, la simplicité comme méthode
  18. 18John McCarthy : Lisp et l’idée de programmer avec des symboles
  19. 19Alan Kay : Smalltalk et l’ordinateur comme média personnel
  20. 20Barbara Liskov : l'abstraction qui a rendu le logiciel modulaire
  21. 21Robin Milner : ML, la preuve assistée et les langages de l’interaction
  22. 22Brian Kernighan : AWK, Unix et l'art d'expliquer le code
  23. 23Anders Hejlsberg : de Turbo Pascal à C# et TypeScript
  24. 24Larry Wall : Perl, le langage qui a relié les outils d'Internet
  25. 25Yukihiro Matsumoto : Ruby et le bonheur du programmeur
  26. 26Rasmus Lerdorf : PHP et la démocratisation du Web dynamique
BiographieHistoire de l’informatiqueDébutant

Dennis Ritchie : le langage C au cœur d'Unix

Comment Dennis Ritchie a conçu le langage C et contribué à Unix, deux fondations qui ont rendu les logiciels système plus portables.

3 août 20268 minLire

Cet article vous a-t-il été utile ?