URL: https://linuxfr.org/news/des-nouvelles-de-fortran-n-4-octobre-2022 Title: Des nouvelles de Fortran n°4 - Octobre 2022 Authors: vmagnin Julien Jorge et Ysabeau Date: 2022-10-14T14:16:48+02:00 License: CC By-SA Tags: fortran, prix_turing, norme, compilateurs et gsoc Score: 3 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 ! ---- [Fortran-lang.org](https://fortran-lang.org/fr/) [Norme Fortran 2023 (brouillon du comité J3)](https://j3-fortran.org/doc/year/22/22-007r1.pdf) [Vidéo sur Jack Dongarra (prix Turing 2021)](https://www.youtube.com/watch?v=Oe9LRKoE6L0) [Présentation de 2015 sur l'architecture russe Elbrus](http://russianscdays.org/files/talks/VVolkonsky-RSCDays-2015.pdf) [Démonstration en ligne du compilateur LFortran utilisant sa dorsale WebAssembly](https://dev.lfortran.org/) ---- # 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 5^e norme Fortran de ce XXI^e siècle, nommée pour l’instant Fortran 202Y, alors que le langage s’approche tranquillement de son 70^e 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](https://j3-fortran.org/doc/year/22/22-176r5.pdf) 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](https://dl.acm.org/doi/pdf/10.1145/22899.22904). 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. ![Jack Dongarra](https://upload.wikimedia.org/wikipedia/commons/thumb/1/1f/Jack-dongarra-2022.jpg/192px-Jack-dongarra-2022.jpg) (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 TMSC *(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 Enfin, Fortran-lang vient de postuler pour être sponsorisée par l’organisation américaine à but non-lucratif [NumFOCUS](https://numfocus.org/) : 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](https://fortran-lang.org/fr/) 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](https://diataxis.fr/) 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.