Code source en Fortran 77

Fortran

FORTRAN, contraction de FORmula TRANslation (« traduction de formules »), est l’un des langages les plus importants de l’histoire de l’informatique. Développé chez IBM sous la direction de John Backus, il permet aux scientifiques et aux ingénieurs d’écrire leurs calculs sous une forme beaucoup plus proche des mathématiques que des instructions d’une machine.Lorsque le premier système FORTRAN devient disponible pour l’IBM 704 en 1957, le changement est considérable. Le programmeur n’a plus à traduire lui-même chaque opération en instructions élémentaires : un compilateur effectue une grande partie de ce travail.FORTRAN ne constitue pas le premier langage de programmation de l’histoire. Son importance vient plutôt de la combinaison de trois éléments : un langage de haut niveau réellement utilisable, un compilateur capable de produire un code performant et une diffusion qui dépasse rapidement la machine pour laquelle il avait été conçu.

Fiche rapide

  • Nom : FORTRAN, pour FORmula TRANslation
  • Origine : IBM
  • Responsable du projet : John Backus
  • Premières spécifications : 1954
  • Première diffusion : 1957 sur IBM 704
  • Domaine principal : calcul scientifique et numérique
  • Principe : langage compilé de haut niveau

Comment programmait-on avant FORTRAN ?

Au début des années 1950, programmer un ordinateur reste une opération très technique. Les développeurs travaillent généralement en langage machine ou avec des langages symboliques proches de l’assembleur.

Pour effectuer un calcul scientifique, il ne suffit donc pas d’écrire la formule mathématique. Le programmeur doit la décomposer en une succession d’opérations correspondant aux instructions du processeur. Il doit également gérer les registres, les adresses mémoire, les branchements et de nombreux détails propres à la machine.

Cette méthode permet d’obtenir des programmes rapides, mais leur développement demande beaucoup de temps. De plus, un programme écrit pour une machine particulière reste fortement lié à son architecture.

La croissance du calcul scientifique rend cette situation de plus en plus problématique. Les chercheurs souhaitent utiliser les ordinateurs pour les trajectoires balistiques, l’aéronautique, la physique, les statistiques, la météorologie ou encore le calcul numérique. Il devient nécessaire de faciliter la programmation sans perdre les performances des machines.

1953–1957 : la naissance de FORTRAN

En 1953, John Backus obtient chez IBM les moyens de constituer une équipe chargée d’étudier une nouvelle manière de programmer. L’idée consiste à permettre à un scientifique d’exprimer directement une partie de son problème avec une notation proche des mathématiques.

Le 10 novembre 1954, l’équipe produit un rapport préliminaire décrivant les spécifications de l’IBM Mathematical FORmula TRANSlating System. Le nom FORTRAN vient directement de cette expression.

Le projet se révèle beaucoup plus complexe que prévu. Il ne suffit pas d’inventer une syntaxe plus lisible : il faut surtout construire un programme capable de la traduire efficacement en instructions pour l’ordinateur.

Après plusieurs années de développement, le système FORTRAN devient disponible en 1957 pour l’IBM 704.

Le principe fondamental : laisser le compilateur traduire le programme

La grande nouveauté est facile à comprendre avec un exemple. Un scientifique souhaite calculer :

Y = (A + B)**2

En langage machine ou en assembleur, cette opération doit être décomposée en plusieurs instructions : charger une valeur, effectuer l’addition, conserver le résultat, réaliser la multiplication puis enregistrer la valeur finale.

Avec FORTRAN, le programmeur peut écrire une expression beaucoup plus proche de la formule qu’il manipule.

Le compilateur analyse ensuite le programme FORTRAN et produit les instructions machine correspondantes. Le code source écrit par l’être humain et le programme effectivement exécuté par l’ordinateur deviennent donc deux objets différents.

Cette séparation est fondamentale. Elle permet au programmeur de consacrer davantage de temps au problème scientifique et moins de temps aux détails électroniques de la machine.

Le véritable défi : produire du code rapide

L’idée d’un langage plus simple rencontre toutefois une forte objection. Les ordinateurs coûtent extrêmement cher et leurs ressources restent limitées. Beaucoup de programmeurs pensent qu’un programme produit automatiquement par un compilateur sera nécessairement moins efficace qu’un programme soigneusement écrit à la main.

L’équipe de John Backus doit donc résoudre deux problèmes à la fois : traduire les expressions et optimiser le programme produit.

C’est l’une des grandes réussites du projet. Le compilateur FORTRAN ne se contente pas d’effectuer une traduction mécanique. Il analyse le programme afin de produire un code suffisamment performant pour rendre l’utilisation d’un langage de haut niveau acceptable sur une machine scientifique coûteuse.

Cette réussite contribue fortement à convaincre les utilisateurs. Le gain de temps obtenu lors de l’écriture des programmes devient beaucoup plus important que le contrôle perdu en abandonnant une programmation entièrement manuelle en assembleur.

L’IBM 704 : la machine qui accueille FORTRAN

Le premier FORTRAN est étroitement lié à l’IBM 704, ordinateur scientifique commercialisé par IBM au milieu des années 1950.

La machine dispose notamment d’une arithmétique matérielle en virgule flottante. Cette capacité est particulièrement adaptée aux calculs scientifiques, dans lesquels les nombres réels et les ordres de grandeur très différents sont fréquents.

FORTRAN et l’IBM 704 forment ainsi un ensemble cohérent : la machine fournit la puissance de calcul tandis que le langage facilite son exploitation par les scientifiques et les ingénieurs.

À quoi ressemble un programme FORTRAN ?

FORTRAN fournit progressivement les éléments indispensables à l’écriture de véritables programmes scientifiques : variables numériques, expressions arithmétiques, tableaux, boucles, branchements et appels de fonctions.

Un calcul peut par exemple prendre une forme telle que :

      X = A + B
      Y = X * X
      Z = SQRT(Y)

Pour un programmeur moderne, ces instructions paraissent ordinaires. Dans le contexte des années 1950, elles représentent pourtant un changement profond : le texte du programme décrit davantage ce que l’on souhaite calculer que la manière exacte dont le processeur doit effectuer chaque opération.

Les cartes perforées marquent la syntaxe du langage

Les premières versions de FORTRAN restent profondément liées aux équipements de leur époque. Les programmes sont notamment préparés sur des cartes perforées, chaque carte correspondant généralement à une ligne du programme.

Cette organisation explique le célèbre format fixe des anciennes versions de FORTRAN. Certaines colonnes possèdent une fonction précise : numérotation, continuation d’une instruction ou texte du programme.

Ces contraintes peuvent sembler étranges aujourd’hui. Elles rappellent cependant qu’un langage de programmation n’évolue jamais indépendamment du matériel sur lequel on l’utilise.

FORTRAN est-il le premier langage de programmation ?

Non. Des langages symboliques, des assembleurs et plusieurs expériences de programmation de plus haut niveau existent avant lui.

Présenter FORTRAN comme « le premier langage de programmation » serait donc historiquement incorrect.

Son importance se situe ailleurs : FORTRAN est généralement considéré comme l’un des premiers langages de haut niveau à connaître une diffusion industrielle majeure. Surtout, son compilateur montre qu’il est possible de transformer une notation relativement abstraite en un programme machine suffisamment efficace pour un usage scientifique réel.

Ce succès contribue à changer la perception de la programmation. Le langage utilisé par le programmeur n’a plus besoin de reproduire directement le langage du processeur.

De FORTRAN à une famille de langages

FORTRAN ne reste pas figé dans sa version de 1957. Le langage évolue continuellement afin de répondre aux besoins des programmeurs et à l’évolution des ordinateurs.

  • 1957 : diffusion du premier FORTRAN pour l’IBM 704.
  • 1958 : FORTRAN II améliore notamment la possibilité de construire et d’utiliser des sous-programmes.
  • Années 1960 : FORTRAN se diffuse sur de nombreuses familles d’ordinateurs au-delà des machines IBM.
  • 1966 : FORTRAN fait l’objet d’une première normalisation américaine, étape importante vers une meilleure compatibilité entre implémentations.
  • FORTRAN 77 : nouvelle étape majeure de normalisation et d’évolution du langage.
  • Fortran 90 : évolution importante avec une syntaxe plus moderne, un format source libre et de nouvelles constructions du langage.
  • Fortran 2003, 2008, 2018 et 2023 : le langage continue d’évoluer et reste normalisé au niveau international.

Le changement d’écriture de FORTRAN vers Fortran accompagne les versions modernes du langage, notamment à partir de Fortran 90.

La normalisation change l’échelle du langage

La diffusion de FORTRAN sur des ordinateurs provenant de constructeurs différents crée rapidement un nouveau problème : les différentes implémentations ne sont pas toujours parfaitement compatibles.

La normalisation devient donc essentielle. En 1966, une première norme américaine FORTRAN est publiée sous la référence ANSI X3.9-1966.

Cette évolution est importante dans l’histoire du logiciel. Un programme n’est plus nécessairement pensé comme un objet attaché à une seule machine. L’existence de compilateurs conformes à une même définition du langage permet progressivement de déplacer plus facilement les programmes entre différents systèmes.

La portabilité reste imparfaite, notamment à cause des extensions propres aux constructeurs, mais le principe devient fondamental pour l’évolution future de l’informatique.

Pourquoi FORTRAN s’impose dans le calcul scientifique

FORTRAN répond particulièrement bien aux besoins du calcul numérique. Il facilite la manipulation de tableaux, les opérations arithmétiques répétitives et l’écriture d’algorithmes scientifiques.

Il est ainsi utilisé dans de nombreux domaines :

  • calcul de trajectoires ;
  • physique et recherche nucléaire ;
  • aéronautique et spatial ;
  • météorologie et modélisation du climat ;
  • mécanique des fluides ;
  • calcul matriciel ;
  • simulations numériques ;
  • modélisation scientifique et ingénierie.

La longévité du langage s’explique aussi par l’existence d’une quantité considérable de logiciels scientifiques développés et validés pendant plusieurs décennies. Dans le calcul numérique, remplacer un programme éprouvé n’est pas toujours souhaitable simplement parce qu’un langage plus récent existe.

FORTRAN n’a pas disparu

FORTRAN appartient à l’histoire de l’informatique, mais Fortran est toujours un langage vivant. La norme continue d’évoluer et des compilateurs modernes sont activement maintenus.

Le langage reste particulièrement présent dans le calcul scientifique et le calcul haute performance. Des programmes utilisés en météorologie, océanographie, physique, ingénierie ou simulation numérique reposent encore sur des bibliothèques et des codes Fortran.

Il serait donc incorrect de présenter Fortran comme un langage ancien uniquement conservé pour des raisons historiques. Sa syntaxe et ses capacités ont considérablement évolué depuis 1957.

Pourquoi FORTRAN constitue un tournant majeur

  • Abstraction : le programmeur peut décrire ses calculs sans manipuler directement chaque instruction du processeur.
  • Compilation : le compilateur transforme automatiquement le programme source en instructions exécutables.
  • Optimisation : le premier compilateur démontre qu’un langage de haut niveau peut produire un code suffisamment performant pour le calcul scientifique.
  • Productivité : les scientifiques peuvent consacrer davantage de temps à leurs modèles et moins à la programmation bas niveau.
  • Portabilité : la diffusion de compilateurs et la normalisation favorisent progressivement l’utilisation d’un même langage sur des machines différentes.
  • Longévité : près de sept décennies après ses débuts, Fortran continue d’être utilisé et normalisé.

Repères chronologiques

  • 1953 : John Backus constitue chez IBM une équipe chargée d’étudier un système de programmation mathématique.
  • 10 novembre 1954 : rapport préliminaire définissant les spécifications du système FORTRAN.
  • 1957 : mise à disposition du premier système FORTRAN pour l’IBM 704.
  • 1958 : apparition de FORTRAN II.
  • 1966 : première norme américaine FORTRAN, ANSI X3.9-1966.
  • 1977 : John Backus reçoit le prix Turing pour ses contributions aux langages et aux systèmes de programmation.
  • Fortran 90 : modernisation importante du langage et adoption du format source libre.
  • 2023 : publication d’une nouvelle génération de la norme internationale Fortran.

Un héritage fondamental

L’importance historique de FORTRAN ne repose donc pas simplement sur son ancienneté. Il démontre qu’un ordinateur peut être programmé efficacement dans un langage conçu d’abord pour être compris par des humains, tandis qu’un compilateur prend en charge la traduction vers la machine.

Cette idée devient ensuite l’un des fondements de la programmation moderne. Les langages ont profondément changé depuis les années 1950, mais le principe reste le même : exprimer un problème à un niveau d’abstraction plus élevé et confier sa traduction à des outils logiciels.


Sources principales : IBM — History of Fortran ; Computer History Museum — History of FORTRAN and FORTRAN II ; ISO/IEC JTC 1/SC 22/WG 5 — Fortran standards and documents.

Photo de couverture d’un code source en Fortran 77 par Phrontis — travail personnel, CC BY-SA 3.0, Wikimedia Commons.

Publications similaires

  • BASIC

    Le nom BASIC vient de Beginner’s All-purpose Symbolic Instruction Code : un langage pensé pour que des débutants puissent enfin dialoguer avec l’ordinateur. Le langage qui a fait entrer la programmation dans les salles de classe Au début des années 1960, l’ordinateur reste encore une machine distante, coûteuse et intimidante. Dans beaucoup d’universités ou de…

  • FLOW-MATIC

    FLOW-MATIC est un langage de programmation développé dans les années 1950 par l’équipe de Grace Hopper chez Remington Rand, puis Sperry Rand UNIVAC. Conçu pour le traitement des données commerciales, il poursuit une idée alors audacieuse : permettre au programmeur de décrire les opérations à effectuer avec des mots proches de l’anglais courant plutôt qu’avec…

  • COBOL

    COBOL, acronyme de Common Business-Oriented Language, est un langage de programmation créé à partir de 1959 pour répondre à un problème devenu crucial : comment écrire des programmes de gestion capables de fonctionner sur des ordinateurs provenant de constructeurs différents ? À la fin des années 1950, IBM, UNIVAC, RCA, Honeywell, Burroughs et d’autres fabricants…

  • Le langage C

    Le nom C n’est pas un sigle. Il succède au langage B, lui-même issu de BCPL. Le langage qui a rendu Unix portable Au début des années 1970, programmer un système d’exploitation signifie encore travailler presque entièrement en assembleur. Cette méthode permet de contrôler précisément la machine, mais elle exige beaucoup de temps et lie…

  • ADA

    Ada est un langage de programmation créé à la demande du département de la Défense des États-Unis (DoD) à la fin des années 1970. Son objectif est inhabituel : il ne s’agit pas seulement de faciliter l’écriture des programmes, mais aussi de rendre plus fiables des logiciels complexes destinés à fonctionner pendant de nombreuses années….

  • BCPL

    BCPL signifie Basic Combined Programming Language : une version simplifiée de CPL, conçue pour écrire des compilateurs et des logiciels système plus faciles à transporter d’une machine à l’autre. Au milieu des années 1960, les langages de programmation deviennent plus expressifs, mais leurs compilateurs restent souvent longs et difficiles à adapter. Un langage peut être…