Que s’est-il passé dans le monde du Fortran depuis notre dépêche de février ? Faisons un point automnal en commençant par deux évènements marquants, des nouvelles du front des compilateurs, un point sur les activités de la jeune communauté Fortran-lang et des nouvelles de quelques projets Fortran. Nous conclurons par un étonnant retour vers le futur du développement logiciel !
Sommaire
- Normes Fortran 2023 et 202Y
- Prix Turing 2021
- Sur le front des compilateurs
- Communauté Fortran-lang
- Projets indépendants
- Rien de nouveau sous le soleil
Normes Fortran 2023 et 202Y
Le projet de norme Fortran 202x a été rebaptisé Fortran 2023, norme qui devrait être publiée en juillet. Tous les compilateurs n’ayant pas fini d’implémenter Fortran 2018, il s’agit d’une version dite mineure apportant de nombreuses petites améliorations à différentes parties du langage. Comme à son habitude, John Reid les a résumées dans ce document de 23 pages : The new features of Fortran 202x.
Le comité J3 (US Fortran Standards Committee) a commencé à travailler sur la 5e norme Fortran de ce XXIe siècle, nommée pour l’instant Fortran 202Y, alors que le langage s’approche tranquillement de son 70e anniversaire (au choix : le projet FORTRAN commence en 1954, le compilateur est déployé par IBM en 1957). Un document résume l’ensemble des suggestions qui ont été pour l’instant transmises au comité, en date du 22 juillet. L’amélioration de la programmation générique et les templates ont déjà été acceptés.
Prix Turing 2021
Le 30 mars 2022, l’ACM (Association for Computing Machinery) a décerné le prix Turing 2021 à l’Américain Jack Dongarra « pour ses contributions pionnières aux algorithmes numériques et aux bibliothèques qui ont permis aux logiciels de calcul de haute performance de suivre le rythme des améliorations exponentielles du matériel pendant plus de quatre décennies. » Il a travaillé sur plusieurs bibliothèques de calcul en FORTRAN telles que EISPACK (1974), LINPACK, BLAS, LAPACK (1992) et ScaLAPACK (1993), etc. Il a créé en 1985 le dépôt netlib dont les logiciels étaient au début automatiquement envoyés sur requête e-mail. Il a participé à la mise en place du standard Message Passing Interface (MPI) pour le calcul parallèle (1994). Ayant longtemps travaillé sur la mesure des performances des calculateurs avec LINPACK, il est également à l’origine du TOP500 des plus puissants supercalculateurs de la planète. Plus récemment (2016), il a travaillé sur le calcul par GPU. Il donnera sa conférence Turing le 15 novembre 2022, en ouverture de la SC22 (The International Conference for High Performance Computing, Networking, Storage, and Analysis) à Dallas.
(Photo ICLTSG, Wikimedia Commons, licence CC BY-SA 4.0)
Sur le front des compilateurs
Arm Fortran Compiler (armflang)
La collection de compilateurs C/C++/Fortran Arm Compiler for Linux est désormais disponible gratuitement. Le compilateur Fortran armflang est pour l’instant basé sur le compilateur Classic Flang, en attendant de passer au nouveau frontal LLVM Flang en développement.
LCC
LCC est un compilateur propriétaire du concepteur de microprocesseurs russe MCST (le Moscow Center of SPARC Technologies, fondé en 1992). Il prend en charge les langages C, C++ et Fortran pour les ordinateurs à architecture Elbrus ou SPARC (ainsi que x86_64 via un compilateur croisé). LCC est décrit comme largement compatible avec le compilateur GCC. Concernant les processeurs Elbrus, le fondeur est TSMC (Taiwan Semiconductor Manufacturing Company).
LFortran
En décembre 2021, Ondřej Čertík a quitté le Los Alamos National Laboratory (LANL) pour rejoindre GSI Technology en tant que développeur de compilateurs à temps plein. Il continue d’y développer le compilateur interactif LFortran ainsi que LPython, un nouveau frontal Python. Ils prendront entre autres en charge leurs « processeurs » Gemini Associative Processing Unit (APU), des circuits de mémoire capables d’effectuer en interne des traitements sur les données stockées.
Communauté Fortran-lang
Le Discourse de la communauté totalise désormais plus de 850 utilisateurs inscrits. Sur GitHub, l’organisation Fortran-lang comprend 83 membres. Lors de la recherche du mot clé « Fortran » dans le Google anglo-saxon, le site Fortran-lang.org est désormais maillot jaune (sans recours au dopage), résultat de presque trois ans de travail de la communauté. Un article a été publié sur l’état du langage et les activités de la communauté :
L.J. Kedward et al., « The State of Fortran », in Computing in Science & Engineering, vol. 24, n°2, p. 63-72, 1 mars-avril 2022, doi : 10.1109/MCSE.2022.3159862, PDF disponible sur https://arxiv.org/abs/2203.15110
Enfin, Fortran-lang vient de postuler pour être sponsorisée par l’organisation américaine à but non-lucratif NumFOCUS : réponse attendue fin novembre. Parmi les projets déjà sponsorisés par NumFOCUS, on compte : Jupyter, IPython, NumPy, SciPy, SymPy, Matplotlib, Julia, conda-forge, LFortran, etc.
GSoC 2022
L’organisation Fortran-lang a participé au Google Summer of Code 2022 (à ouvrir avec Chromium car Firefox n’affiche pas la liste des projets !). Cinq étudiants ont travaillé sur :
- un plan de transformation de l’écosystème Fortran basé sur le gestionnaire de paquets Fortran fpm.
- La création d’un Fortran Playground permettant de s’initier en ligne au Fortran (le compilateur utilisé est pour l’instant GFortran).
- La migration du site fortran-lang.org de jekyll vers Sphinx. L’internationalisation du site en est facilitée : les traductions sont désormais gérées avec Weblate. Les pages principales du site ont été traduites en français et le travail se poursuit.
- L’ajout d’une application dorsale WebAssembly au compilateur LFortran.
- Le prototypage dans LFortran des nouveautés en programmation générique qui sont prévues pour la future norme Fortran 202Y.
Projets logiciels gérés par Fortran-lang
- Le gestionnaire de paquets Fortran fpm 0.6.0 est sorti le 19 juin 2022. Concernant sa documentation, parmi les six langues pour lesquelles la traduction est bien avancée, la version française fait partie des traductions intégrales.
- La bibliothèque standard stdlib 0.2.1 est sortie le 22 avril 2022.
- L’extension Modern Fortran (actuellement en version 3.4) pour Visual Studio Code apporte le support du langage Fortran, avec coloration syntaxique, auto-complétion, débogueur, diagnostique, etc.
Documentation
Une liste des instructions intrinsèques du Fortran est désormais en ligne. Chaque description inclut un programme d’exemple complet et indique la norme ayant introduit la fonctionnalité. Cette liste peut même être installée sous forme de pages man
. On peut alors par exemple taper pour la fonction sinus hyperbolique :
$ man sinh.3fortran
Projets indépendants
- Doom Emacs dispose désormais d’un module Fortran.
- Autre nouveauté, fortran-tcl86 propose des interfaces Fortran vers Tcl/Tk 8.6.
- ORDERPACK, bibliothèque de tri et de classement (ranking) initialement développée entre 2002 et 2013, a été reprise et est sortie en version 2.1. Elle est désormais utilisable en tant que paquet fpm.
- La bibliothèque Quadpack dont le développement avait été arrêté dans les années 80 a également été reprise pour modernisation. Elle est désormais utilisable en tant que paquet fpm.
- gtk-fortran, sortie en avril en version 4.2, est installable via conda et peut être utilisée comme dépendance fpm. Mais l’utilisateur sera surtout sensible aux nouveaux tutoriels et à la refonte de la documentation. Celle-ci a été entièrement révisée et restructurée en suivant la méthode Diátaxis où les pages de documentation sont groupées dans quatre sections : Tutoriels, Guides pratiques (how-to), Références et Explications.
Rien de nouveau sous le soleil
S’intéresser au Fortran, c’est aussi plonger dans l’histoire de l’informatique et contempler parfois avec étonnement à la fois comment tout change et rien ne change. Ce paragraphe provient d’un article décrivant l’état du FORTRAN (alors en majuscules) vers 1958, soit un an après le déploiement du premier compilateur chez les clients d’IBM :
Néanmoins, la base technique du FORTRAN était suffisamment solide pour que son utilisation fasse boule de neige. Il y eut bientôt des centaines de clients qui firent des centaines de suggestions d’améliorations. Ils trouvaient des bogues et les envoyaient – pas seulement des rapports d’erreur, mais dans de nombreux cas, les corrections étaient envoyées en même temps. De nombreuses suggestions portaient sur des sujets tels que l’amélioration des diagnostics – de petites choses pratiques – et c’était comme si des centaines de personnes travaillaient à l’amélioration de FORTRAN. Les suggestions affluaient et nous les mettions en œuvre aussi vite que possible.
William P. Heising, The Emergence of FORTRAN IV from FORTRAN II, Annals of the History of Computing, vol. 1, n°1, janv. 1984.
Aller plus loin
- Fortran-lang.org (106 clics)
- Norme Fortran 2023 (brouillon du comité J3) (32 clics)
- Vidéo sur Jack Dongarra (prix Turing 2021) (29 clics)
- Présentation de 2015 sur l'architecture russe Elbrus (21 clics)
- Démonstration en ligne du compilateur LFortran utilisant sa dorsale WebAssembly (36 clics)
# juste une coquille
Posté par srb (site web personnel) . Évalué à 3.
TMSC -> TSMC (pour Taiwan Semiconductor Manufacturing Company)
[^] # Re: juste une coquille
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Corrigé, merci.
# ..
Posté par M . Évalué à 2.
Pour avoir porté du code fortran sur une archi sans compilo fortran, j'avoue que le fortran ne m'a pas fait rêver. Surtout que c'était un mix de vieux fortran avec quelques trucs récents : syntaxe pourrie, mais pas de conversion auto en C avec f2c.
Une petite vidéo de fortran II sur un mainframe ibm : https://www.curiousmarc.com/computing/ibm-1401-mainframe/ibm-1401-fortran-ii
Et l'explication du fonctionnement du compilo de l'époque, avec plusieurs passent vu les contraintes mémoire 4k/8k de core memory : http://ibm-1401.info/1401-FORTRAN-Illustrated.html
PS : le commentaire dans f2c.h "He suggested using FORTRAN, and everybody barfed."
[^] # Re: ..
Posté par Jean-Baptiste Faure . Évalué à 10.
La syntaxe pourrie c'est toujours celle du langage qu'on découvre contraint et forcé.
Quand tu es habitué au Fortran, devoir mettre un point-virgule à la fin de chaque instruction ça fait vraiment très primitif pour le dire poliment.
Cela dit FORTRAN II c'était les années soixante. Ceux qui ont écrit des codes dans cette version doivent être tous à la retraite s'ils sont encore vivants. Est-ce qu'il t'arrive de critiquer un constructeur automobile aujourd'hui parce que les essuie-glace de sa voiture la plus célèbre étaient manuels dans les années cinquantes ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.