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.