Aller au contenu principal
Bethemesh
HistoireHistoire de l’informatique

FORTRAN : prouver qu'un compilateur peut rivaliser avec l'assembleur

Comment l'équipe de John Backus a créé FORTRAN, convaincu les scientifiques d'utiliser un langage de haut niveau et fondé un patrimoine durable de calcul numérique.

Publié le 3 août 2026Lecture : 6 minPar Équipe Bethemesh
Débutant
Illustration de formules scientifiques traduites par un compilateur FORTRAN
Afficher le sommaire
  1. Le coût caché des premiers ordinateurs
  2. Une équipe, un langage et un compilateur
  3. Pourquoi l’optimisation était une condition d’adoption
  4. Des dialectes à la normalisation
  5. Un langage conçu pour les tableaux
  6. FORTRAN, COBOL et l’élargissement de la programmation
  7. Pourquoi Fortran compte encore
  8. Chronologie
  9. Questions fréquentes
  10. John Backus a-t-il créé FORTRAN seul ?
  11. Pourquoi le premier compilateur était-il exceptionnel ?
  12. FORTRAN et Fortran désignent-ils le même langage ?
  13. Pourquoi du code Fortran ancien est-il encore conservé ?
  14. Fortran est-il limité aux anciennes machines ?
  15. Quelle différence principale existe entre FORTRAN et COBOL ?

Au début des années 1950, la plupart des scientifiques programment en langage machine ou en assembleur. Une formule mathématique doit être décomposée en instructions propres à un ordinateur, avec la gestion explicite des registres et des adresses. Le calcul est rapide une fois le programme terminé, mais sa préparation peut prendre des semaines.

L’équipe dirigée par John Backus chez IBM propose une rupture : écrire les formules dans une notation plus proche des mathématiques, puis laisser un programme les traduire. FORTRAN, pour Formula Translation, ne réussit toutefois que parce que son compilateur produit un code assez efficace pour rivaliser avec celui des spécialistes de l’assembleur.

Le coût caché des premiers ordinateurs

Le temps des machines est cher, mais celui des programmeurs l’est aussi. À mesure que les ordinateurs accélèrent, la préparation des programmes devient une part croissante du coût d’un calcul.

Backus travaille d’abord sur Speedcoding pour l’IBM 701. Ce système offre des opérations pratiques, notamment sur les nombres à virgule flottante, mais il interprète les instructions et ralentit fortement leur exécution. Il montre qu’une notation plus accessible est utile, tout en confirmant que les scientifiques n’accepteront pas une perte importante de performance.

En 1953, Backus propose un système de traduction destiné à l’IBM 704. Cette machine dispose d’une arithmétique flottante matérielle et de registres d’index, mais l’exploiter efficacement demande une organisation complexe du code.

Une équipe, un langage et un compilateur

IBM réunit une équipe aux compétences complémentaires. Harlan Herrick, Irving Ziller, Peter Sheridan, Roy Nutt, Robert Nelson, Lois Haibt et d’autres participent à la syntaxe, à l’analyse, à l’optimisation et aux tests.

Le langage fournit des expressions arithmétiques, des boucles et des branchements adaptés aux calculs numériques. Sa forme initiale porte encore la marque du matériel et des cartes perforées : colonnes réservées, étiquettes numériques et instruction GO TO.

L’innovation décisive se trouve dans le compilateur. Il analyse les dépendances entre calculs, organise l’usage des registres et cherche à réduire les opérations répétées. L’objectif n’est pas seulement de produire un programme correct, mais un programme dont la vitesse ne donne pas envie de revenir à l’assembleur.

Livré en 1957, le compilateur dépasse les attentes de nombreux utilisateurs. Le temps de programmation diminue fortement et le langage se diffuse avec les ordinateurs IBM.

Pourquoi l’optimisation était une condition d’adoption

Un langage de haut niveau introduit une distance entre ce que le programmeur écrit et ce que le processeur exécute. Aujourd’hui, cette traduction paraît normale. En 1957, confier les décisions d’optimisation à un programme constitue un pari.

FORTRAN prouve que le compilateur peut effectuer une partie du travail mécanique mieux et plus régulièrement qu’une personne, notamment sur de grands programmes. Cette réussite change l’économie du logiciel : l’ordinateur ne sert plus uniquement à exécuter le calcul final, il aide aussi à fabriquer le programme.

La productivité ne supprime pas le besoin de comprendre les méthodes numériques. Une formule instable ou un modèle incorrect reste faux, quelle que soit la qualité du compilateur. FORTRAN sépare mieux l’expression scientifique des détails du processeur ; il ne remplace pas l’expertise du domaine.

Des dialectes à la normalisation

Le succès produit rapidement plusieurs versions. FORTRAN II ajoute notamment la compilation séparée de sous-programmes. FORTRAN IV clarifie le langage et se diffuse largement, mais les constructeurs proposent aussi leurs extensions.

Cette fragmentation menace la promesse de portabilité. Une norme américaine paraît en 1966, puis d’autres révisions structurent l’évolution du langage. FORTRAN 77 généralise plusieurs pratiques ; Fortran 90 introduit une syntaxe libre, des tableaux plus expressifs, des modules et des outils de programmation structurée.

Le changement de graphie officielle, de FORTRAN vers Fortran, accompagne cette modernisation sans créer un nouveau langage. Les versions ultérieures ajoutent programmation objet, concurrence et meilleure interopérabilité avec C.

La compatibilité demeure un objectif important. Des modèles scientifiques validés pendant des décennies représentent une connaissance coûteuse à reconstruire. Les faire évoluer progressivement est souvent plus sûr que les réécrire entièrement.

Un langage conçu pour les tableaux

Le calcul scientifique manipule fréquemment des vecteurs, matrices et grilles. Fortran permet d’exprimer directement des opérations sur des tableaux, ce qui donne au compilateur des informations utiles pour vectoriser ou paralléliser le calcul.

Son modèle facilite aussi certaines analyses d’alias : le compilateur peut plus souvent déterminer si deux noms désignent la même zone mémoire. Cette connaissance l’aide à réorganiser des opérations sans modifier leur résultat.

Ces propriétés expliquent que Fortran reste compétitif dans la simulation climatique, la mécanique des fluides, la physique et d’autres domaines du calcul intensif. Sa longévité ne vient donc pas uniquement de l’ancien code, mais d’une spécialisation entretenue.

FORTRAN, COBOL et l’élargissement de la programmation

FORTRAN et les travaux de Grace Hopper répondent au même obstacle : le code machine limite le nombre de personnes capables de transformer un problème en programme.

Leurs domaines initiaux diffèrent. FORTRAN privilégie les formules et les performances numériques. FLOW-MATIC puis COBOL privilégient les fichiers, les enregistrements et le vocabulaire des organisations. Ensemble, ces projets montrent qu’un langage peut être adapté à une catégorie de problèmes plutôt qu’à une machine particulière.

ALGOL, Lisp, Pascal et C poursuivront cette séparation entre intention et matériel selon d’autres priorités : description des algorithmes, calcul symbolique, enseignement structuré ou programmation système.

Pourquoi Fortran compte encore

Fortran rappelle qu’un langage ne remplace pas nécessairement son passé pour rester moderne. Il peut préserver des programmes éprouvés tout en ajoutant des abstractions, des normes et des outils adaptés à de nouvelles machines.

Sa contribution historique la plus large est d’avoir rendu crédible la compilation optimisante. Les développeurs utilisent aujourd’hui des langages beaucoup plus abstraits parce que les compilateurs ont appris à transformer leurs intentions en code efficace. FORTRAN a fourni l’une des premières démonstrations décisives de cette possibilité.

Chronologie

  • 1953 : John Backus propose à IBM un système de traduction de formules.
  • 1954 : constitution de l’équipe FORTRAN pour l’IBM 704.
  • 1957 : livraison du premier compilateur FORTRAN.
  • 1958 : FORTRAN II facilite l’emploi de sous-programmes compilés séparément.
  • 1962 : FORTRAN IV rationalise le langage.
  • 1966 : publication de la première norme américaine.
  • 1978 : normalisation de FORTRAN 77.
  • 1991 : publication de Fortran 90 et adoption d’une graphie modernisée.
  • 2003 : Fortran 2003 ajoute notamment des mécanismes orientés objet.
  • Aujourd’hui : Fortran reste employé dans le calcul scientifique et intensif.

Questions fréquentes

John Backus a-t-il créé FORTRAN seul ?

Non. Il propose le projet et dirige une équipe IBM réunissant de nombreux spécialistes. Le langage et surtout son compilateur sont des réalisations collectives.

Pourquoi le premier compilateur était-il exceptionnel ?

Il devait optimiser suffisamment le programme pour convaincre des scientifiques habitués à contrôler chaque instruction. Ses techniques ont établi la crédibilité des langages de haut niveau pour le calcul performant.

FORTRAN et Fortran désignent-ils le même langage ?

Oui. La graphie Fortran est devenue officielle avec les versions modernes. Elle souligne une évolution importante, sans rupture avec la lignée historique.

Pourquoi du code Fortran ancien est-il encore conservé ?

Il contient souvent des modèles numériques testés et validés pendant des décennies. Une réécriture peut introduire des erreurs scientifiques difficiles à détecter.

Fortran est-il limité aux anciennes machines ?

Non. Les compilateurs modernes ciblent les processeurs actuels et les supercalculateurs. Le langage a ajouté modules, tableaux expressifs, programmation objet et outils de concurrence.

Quelle différence principale existe entre FORTRAN et COBOL ?

FORTRAN est initialement conçu pour les calculs scientifiques ; COBOL pour le traitement des données commerciales. Tous deux cherchent à rendre les programmes moins dépendants du code machine.

Sources et références

  1. 1.IBM --- The FORTRAN Automatic Coding System
  2. 2.John Backus et al. --- The FORTRAN Automatic Coding System
  3. 3.Computer History Museum --- John Backus
  4. 4.Fortran-lang --- Fortran history

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

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.

3 août 20268 minLire

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