Loading AI tools
langage de programmation De Wikipédia, l'encyclopédie libre
Fortran (mathematical FORmula TRANslating system) est un langage de programmation généraliste dont le domaine de prédilection est le calcul scientifique et le calcul numérique. Il est utilisé aussi bien sur ordinateur personnel que sur les superordinateurs, où il sert d'ailleurs à tester leurs performances dans le cadre du classement TOP500 des superordinateurs les plus puissants au monde, entre autres grâce à la bibliothèque LINPACK.
Fortran | ||
Date de première version | 1957 | |
---|---|---|
Paradigme | Multi-paradigme : impératif (procédural, structuré, orienté-objet), orienté tableaux, parallélisme, générique | |
Auteur | John Backus | |
Développeur | John Backus & IBM | |
Dernière version | Fortran 2023 (ISO/IEC 1539-1:2023) (le 17 novembre 2023 | )|
Typage | fort, statique | |
Normes | ISO/IEC 1539 | |
Influencé par | Speedcoding | |
A influencé | Algol 58, BASIC, C, DOPE, PL/I, PACT I, MUMPS, Ratfor | |
Implémentations | Intel Fortran Compiler, GFortran, IBM XL Fortran, NVIDIA HPC SDK, Lahey/Fujitsu, Absoft, Cray, NAG, Arm, NEC, Silverfrost, Oracle, Flang, LFortran, etc. | |
Système d'exploitation | Multiplateforme | |
Licence | Licence MIT | |
Site web | fortran-lang.org | |
Extension de fichier | f, for et f90 | |
modifier |
Le nombre de bibliothèques scientifiques écrites en Fortran, éprouvées et améliorées pendant de longues années, et les efforts continus consacrés aux compilateurs pour exploiter au fil des décennies les nouvelles possibilités des calculateurs (vectorisation, coprocesseurs, parallélisme) ont maintenu l'usage de ce langage qui ne cesse d'évoluer.
Parmi les fonctionnalités ajoutées ces dernières décennies, on citera le calcul sur les tableaux (qui peuvent comporter jusqu'à quinze dimensions), la programmation modulaire, la programmation générique (Fortran 90), le calcul haute performance (Fortran 95), la programmation orientée objet et l'interopérabilité avec les bibliothèques du langage C (Fortran 2003), la programmation concurrente et le calcul parallèle à l'aide des cotableaux (Fortran 2008), des équipes, des évènements et des sous-routines collectives (Fortran 2018), en plus des interfaces OpenMP, OpenACC et de la bibliothèque Message Passing Interface. La norme actuelle est Fortran 2023, publiée le 17 novembre 2023. Les discussions ont commencé sur le contenu de la suivante : Fortran 202Y, pour l'instant prévue pour l'automne 2028.
Projet lancé en 1954 et aboutissant à une première version en 1957, Fortran est le premier langage de programmation de haut niveau, suivi notamment par Lisp (1958), Algol (1958) et COBOL (1959). Il est le premier langage à être normalisé[1],[2], au milieu des années 60, et est devenu une norme ISO en 1980. Un astéroïde a été nommé 9548 Fortran (1985 CN) en son honneur[3].
Le nom du langage est généralement écrit en majuscules (FORTRAN) pour désigner les versions du langage antérieures à la norme Fortran 90[note 1] car à l'époque les lettres minuscules ne font pas partie du jeu de caractères du langage. Par contre, il est toujours écrit avec une majuscule à partir de Fortran 90. Enfin, depuis environ 2010 les titres des livres en anglais utilisent souvent l'expression modern Fortran (Fortran moderne) pour distinguer la forme actuelle du langage de ses formes historiques.
GO TO
permet de sauter à une ligne numérotée par une étiquette. Le IF
de cette première version est arithmétique : IF (A-B) 10, 20, 30
permet de sauter aux instructions d'étiquettes 10, 20 ou 30 selon que l'expression A-B est négative, nulle ou positive.FUNCTION
et les sous-programmes SUBROUTINE
que l’on appelle par l’instruction CALL
, ce qui permet aux programmeurs de se répartir plus facilement le travail. L'instruction COMMON
permet à plusieurs sous-programmes de partager des données communes. Le nouveau compilateur est également plus rapide que le compilateur Fortran I : il permet en particulier de découper un long programme en plusieurs parties pouvant être compilées indépendamment..AND.
, .OR.
et .NOT.
. Le IF
logique permet d'écrire par exemple IF (A .GE. B) GOTO 10
(aller à 10 si A est supérieur ou égal à B). Le type des variables peut désormais être déclaré explicitement. Il est nécessaire de modifier les programmes écrits en FORTRAN II : le traducteur automatique SIFT (SHARE Internal FORTRAN Translator)[15] est mis à disposition. Cette même année, chaque compilateur apportant ses extensions et variantes, un comité des normes FORTRAN est formé afin de normaliser le langage pour qu'il soit portable d'une machine à l'autre.IF / THEN / ELSE / END IF
, le type de données CHARACTER
en remplacement des constantes d'Hollerith (en) (qui sont supprimées de la norme), les fonctions LGE
, LGT
, LLE
, LLT
pour la comparaison des chaînes de caractères, l'attribut PARAMETER
pour déclarer des constantes, l'attribut SAVE
pour la persistance des variables locales, etc. Fin 1978, l'extension MIL-STD-1753[21] du département de la Défense américain introduit entre autres le END DO
en FORTRAN 77 (bien que le label final reste obligatoire), les blocks DO WHILE / END DO
, l'instruction INCLUDE
, l'instruction IMPLICIT NONE
et des fonctions pour manipuler les bits des entiers.ALLOCATABLE
, les types dérivés, l'attribut POINTER
[note 3], l'instruction IMPLICIT NONE
pour rendre obligatoire la déclaration des variables, les structures de contrôle SELECT CASE
, les procédures SYSTEM_CLOCK
et DATE_AND_TIME
pour accéder à l'horloge du système, etc. Les restrictions concernant la mise en forme des programmes (colonnes 1 à 72) disparaissent : l'écriture se fait en format libre. Afin de rester compatible avec les nombreux codes industriels écrits en FORTRAN (Nastran, bibliothèques NAG et IMSL, etc.), Fortran 90 est conçu de telle façon que FORTRAN 77 en constitue un sous-ensemble.FORALL
et WHERE
pour le calcul vectoriel, les procédures PURE
et ELEMENTAL
et rend obsolescentes certaines fonctionnalités telles que les boucles à compteur réel ou l'instruction PAUSE
. La procédure CPU_TIME
permet de mesurer le temps processeur utilisé par un segment de programme.BIND
et VALUE
, qui permettent à un programme Fortran d'accéder facilement aux bibliothèques disponibles en C. Les pointeurs de procédure permettent de choisir lors de l'exécution une procédure à exécuter. Les types dérivés sont améliorés, ainsi que les entrées/sorties. On peut désormais gérer les exceptions en calcul flottant de la norme IEEE 754. La norme apporte également la gestion des caractères ISO 10646, base de l'Unicode. L'intégration avec le système d'exploitation est améliorée avec l'introduction des instructions get_command_argument
, get_command
, et command_argument_count
.DO CONCURRENT
pour la parallélisation des itérations sans interdépendance. Les modules peuvent désormais comporter des sous-modules. Et les structures BLOCK...END BLOCK
permettent de déclarer des variables à portée limitée n'importe où à l'intérieur d'une routine. La modularité est améliorée par l'introduction des SUBMODULE
. De nouvelles procédures intrinsèques sont introduites pour la gestion des bits. De nouvelles constantes sont ajoutées au module ISO_FORTRAN_ENV
, en particulier les KIND
des types d'entiers INT8
, INT16
, INT32
, INT64
et de réels REAL32
, REAL64
, REAL128
.DO CONCURRENT
peuvent gérer la réduction des variables. Les fonctions SIMPLE
sont des fonctions PURE
n'accédant à aucune donnée extérieure (à part leurs arguments).Fortran fait partie des langages normalisés depuis 1965 et est devenu une norme ISO en 1980[1]. La norme Fortran est actuellement gérée par le groupe de travail ISO/IEC JTC1/SC22/WG5[37], généralement simplement appelé WG5 (pour Working Group 5), qui charge le comité Fortran US INCITS PL22.3 (généralement appelé J3, en référence à son ancien nom ANSI X3J3)[38] de développer le langage. Le WG5 est composé d'experts chargés de faire des recommandations pour faire évoluer le langage. Le J3 est composé de fabricants de matériel, d'éditeurs de compilateurs, d'utilisateurs issus aussi bien de l'industrie que du monde académique.
Chaque révision de la norme peut ajouter de nouveaux paradigmes ou fonctionnalités, éventuellement déjà implémentées par les compilateurs sous forme d'extensions au langage, clarifier des points restés ambigus, mais aussi rendre obsolescentes d'anciennes fonctionnalités. En effet, depuis Fortran 90, les normes comportent systématiquement en annexes une liste des fonctionnalités supprimées et une liste des fonctionnalités obsolètes et donc susceptibles d'être supprimées dans une prochaine révision de la norme. Les compilateurs continuent néanmoins généralement de supporter ces fonctionnalités pour assurer la pérennité des codes déjà développés. Enfin, il s'écoule généralement plusieurs années entre la publication d'une nouvelle norme et la prise en charge intégrale de ses nouvelles fonctionnalités dans les compilateurs[39],[40].
En 1995, le WG5 met en place des rapports techniques de type 2 pour travailler sur des fonctionnalités importantes qui n'auront pas le temps d'être intégrées à la norme en cours de rédaction, mais en constitueront une extension qui pourra être intégrée dans la norme suivante.
En 2019, un dépôt GitHub[41] est créé afin que tous les utilisateurs du langage puissent proposer facilement au comité J3 des évolutions pour les normes futures. Il sert actuellement à proposer des nouveautés pour la norme Fortran 202Y qui succédera à Fortran 2023, comme l'amélioration de la programmation générique, des valeurs par défaut pour les arguments optionnels, etc.
En 1955, IBM crée le groupe d'utilisateurs SHARE afin que ses clients puissent échanger entre eux. John Backus y fait des présentations régulières durant le développement du premier compilateur FORTRAN[42]. En avril 1957, des ingénieurs de Westinghouse y rapportent la compilation du premier programme FORTRAN en dehors d'IBM. Alors que le langage se diffuse, un sous-groupe SHARE y est consacré : le FORTRAN Standard Commitee.
En 1970, la British Computer Society crée le Fortran Specialist Group[43], toujours en activité en 2023, afin de promouvoir le langage, participer à ses évolutions et organiser des échanges entre utilisateurs.
Créé en juillet 1982, le bulletin mensuel FORTRAN Forum[44] a été publié par le SIGPLan (Special Interest Group in Programming Languages) de l'ACM (Association for Computing Machinery) trois fois par an, jusqu'en avril 2020.
Le 29 novembre 1983, un groupe de discussion net.lang.f77
est créé sur Usenet. Le 7 novembre 1986, il est renommé comp.lang.fortran
et est toujours l'un des principaux canaux de communication de la communauté Fortran.
La liste de diffusion comp-fortran-90[45] est consacrée aux questions concernant le Fortran à partir de la norme Fortran 90. On peut en consulter les archives jusque 1997, mais l'activité y est désormais très réduite avec seulement six messages postés en 2020.
Un groupe Fortran Programmers[46] est créé sur LinkedIn en juillet 2008 et comporte plus de 4700 membres en 2022.
Le site Fortran Wiki[47] est créé en octobre 2008. Il est édité par les utilisateurs du langage et propose de nombreuses ressources.
Début 2020, une nouvelle communauté d'utilisateurs fortran-lang.org est créée[48],[49] afin de fédérer les efforts dans l'écosystème Fortran, sur le modèle de langages plus jeunes. En s'appuyant sur GitHub[50], elle développe en particulier une bibliothèque standard Fortran (stdlib) similaire à celle du C, un gestionnaire de paquets Fortran (fpm) faisant également office de système de compilation, le compilateur interactif LFortran, ainsi que des tutoriels pour apprendre le Fortran moderne. Certaines pages sont traduites en français. La communauté édite une lettre mensuelle résumant ses activités en cours et diffuse des informations sur Twitter. Une visioconférence mensuelle permet à ses membres de discuter des projets à mener. Son forum Fortran Discourse[51] est devenu un lieu central de discussion pour la communauté Fortran. Les projets de la communauté ont reçu l'aide de cinq étudiants lors du Google Summer of Code 2021 (GSoC 2021)[52], et de même pour le GSoC 2022.
L'International Fortran Conference (FortranCon)[53] est créée en 2020. Initialement prévue à Zurich début juillet 2020, elle a lieu en visioconférence à cause de la pandémie de Covid-19. La seconde édition, FortranCon 2021, a également lieu en visioconférence les 23 et 24 septembre 2021. Les vidéos des conférences sont disponibles sur la chaîne YouTube FortranCon.
En avril 2021, Fortran commence à refaire des apparitions dans le top 20 de l'indice TIOBE[54]. En avril et mai 2024, il apparaît en 10ème position.
Fortran est toujours l'un des langages les plus utilisés pour le calcul intensif, que ce soit pour l'astronomie, la modélisation climatique, la modélisation chimique, la modélisation en économie, la mécanique des fluides numérique, la physique numérique, l'analyse de données, la modélisation hydrologique, l'algèbre linéaire numérique et les bibliothèques numériques (LAPACK, IMSL et NAG), l'optimisation, la simulation de satellites, l'ingénierie des structures et les prévisions météorologiques. Les calculs peuvent aussi bien être réalisés sur des ordinateurs de bureau que sur des supercalculateurs.
De nombreux tests de performance (benchmarks) destinés à évaluer les performances des nouveaux microprocesseurs sont écrits en Fortran.
Contrairement aux idées reçues[55], les logiciels internes des sondes Voyager 1 et Voyager 2 de la NASA n'ont pas été écrits en FORTRAN mais en langage machine[56], contrairement à une partie des logiciels au sol.
De nombreux artistes ont utilisé FORTRAN : Iannis Xenakis, Vera Molnár, Pierre Barbaud, etc.
Avant la norme Fortran 90, le FORTRAN, créé à l'époque des cartes perforées (en particulier avec le système FMS), utilise une mise en page adaptée à ces supports :
DO 10 I=1,5
peut aussi s'écrire DO10I=1,5
[note 4] (le 10
est ici l'étiquette obligatoire de fin de boucle) ;Les extensions de fichiers les plus courantes pour le format fixe sont .f
et .for
, mais ce n'est qu'une convention adoptée par la plupart des compilateurs. Rien n'empêche de les utiliser avec le format libre à condition d'en avertir le compilateur à l'aide de l'option adéquate.
Depuis la norme Fortran 90, le code source est écrit suivant un format dit libre : il n'y a plus de colonne particulière, les lignes font au maximum 132 caractères (mais elles peuvent être continuées à l'aide du caractère &
), les commentaires sont introduits par un point d'exclamation (éventuellement disposé à la suite d'une instruction Fortran). L'extension de nom de fichier la plus courante est alors .f90
[note 5], même si le programme utilise des fonctionnalités de normes plus récentes telles que Fortran 2018.
program degrad
! =================================================
! Imprime une table de conversion degrés -> radians
! avec 32 chiffres significatifs (réels 128 bits)
! =================================================
use, intrinsic :: iso_fortran_env, only: wp=>real128
implicit none
! Déclaration des variables
integer :: deg
real(wp) :: radians(0:90)
! Déclaration des constantes
real(wp), parameter :: pi = 4.0_wp * atan(1.0_wp)
real(wp), parameter :: coeff = (2.0_wp * pi) / 360.0_wp
character(*), parameter :: ligne_horizontale = "(49('-'))"
! Remplissage du tableau :
radians = [ (coeff * deg, deg=0,90) ]
! En-tête de la table
write (*, ligne_horizontale)
write (*, "('| Degrés |', 15(' '), 'Radians', 16(' '), '|')")
write (*, ligne_horizontale)
! Affichage formaté
do deg = 0, 90
write (*, "('| ', I2,' | ', F34.32,' |')") deg, radians(deg)
end do
! Fin de la table
write (*, ligne_horizontale)
end program degrad
Notes :
use
permet d'importer le module intrinsèque iso_fortran_env
qui définit des constantes, en particulier pour les types de réels disponibles (real32, real64, real128
). Ici seule est importée la constante real128
qui sera désignée par l'alias wp
(working precision). Les nombres réels apparaissant dans le programme sont suffixés par cet alias afin de définir leur type. Il suffirait ainsi de remplacer real128
par real64
ou real32
pour modifier de façon cohérente la précision numérique utilisée dans l'ensemble du programme, pour autant que le compilateur prenne en charge la précision correspondante ;implicit none
, introduite dans la norme Fortran 90, rend la déclaration des variables obligatoire. Historiquement, celle-ci est en effet facultative : les variables dont le nom commence par une des lettres I, J, K, L, M ou N sont par défaut de type integer
, les autres de type real
. Ce mécanisme est désormais fortement déconseillé et l'instruction implicit none
doit donc être systématiquement utilisée ;::
. On utilise les entiers par défaut pour deg
. La numérotation des tableaux commence par défaut à 1 en Fortran mais ici on la fait commencer à 0 pour le tableau radians(0:90)
. Les constantes, qui peuvent être calculées, sont spécifiées par l'attribut parameter
. Les chaînes de caractères sont de longueur fixe, mais ici l'étoile indique que la longueur de la chaîne doit être définie en fonction de la longueur de son contenu ;radians()
est calculé à l'aide d'un constructeur, avec deg
pour variable de boucle variant de 0 à 90. Le Fortran permettant de calculer directement sur des tableaux, on aurait pu écrire également radians = coeff * [ (deg, deg=0,90) ]
;write
se réfère à une unité d'entrée-sortie (*
désigne le terminal) et une spécification de format. Ce format est ici stocké dans la chaîne ligne_horizontale
et décrit qu'il faudra afficher 49 tirets. On aurait également pu utiliser une déclaration format
située sur une autre ligne et précédée d'un label numérique ;do deg = 0, 90
indique de répéter en boucle les instructions qui suivent (jusqu'au end do
) pour toutes les valeurs de deg
de 0 à 90 par pas de 1 ;write
à l'intérieur de la boucle permet d'écrire sur le terminal les valeurs des variables deg
et radians(deg)
en utilisant deux caractères pour deg
(qui est un entier) et 34 caractères dont 32 après la virgule pour radians(deg)
qui est un réel.De nombreux compilateurs commerciaux ou libres sont disponibles.
Avant sa version 4.0, le compilateur libre GCC incluait le compilateur g77[58] pour le FORTRAN 77, qui a été remplacé en 2005[59],[60] par le compilateur GFortran[61], issu d'un fork de G95 réalisé en 2003. En décembre 2022, GFortran prend en charge quasiment intégralement Fortran 2003[62] et Fortran 2008[63] et environ 40 % de Fortran 2018[64]. Contrairement aux compilateurs Intel et Cray, il ne gère pas encore de façon native la programmation parallèle avec les co-tableaux mais nécessite l'installation de la bibliothèque OpenCoarrays[65].
Omni Compiler[66] est un méta-compilateur C et Fortran destiné à transformer du code contenant des directives XcalableMP et OpenACC en code parallèle natif.
On trouve de nombreux compilateurs commerciaux : Portland Group (en)[67] (filiale de NVidia), NAG, etc. La plupart des fabricants de stations de travail ou d'ordinateurs destinés au calcul intensif proposent également un compilateur Fortran : Intel[68], IBM[69], Oracle (à la suite du rachat de Sun Microsystems[70]), HPE Cray[71] (Cray a été racheté par HP en 2019), etc.
Certains de ces compilateurs commerciaux ont des versions gratuites pour une utilisation non commerciale : c'est le cas d'Oracle[72], Portland Group[73]. On peut télécharger le compilateur BiSheng[74] que Huawei a développé pour sa plateforme Kunpeng : pour le Fortran, il utilise Flang en frontal.
Quant aux compilateurs Intel[75], ils sont depuis janvier 2021 gratuits pour tous les développeurs : le nouveau compilateur ifx[76], basé sur LLVM, implémente depuis sa version 2023.0.0 l'intégralité de la norme Fortran 2018 et offre désormais les mêmes fonctionnalités que le compilateur classique ifort, qu'il remplacera progressivement[77]. Le compilateur Intel Visual Fortran est l'héritier de DEC Visual Fortran, devenu Compaq Visual Fortran puis HP Visual Fortran.
De nouveaux compilateurs Fortran basés sur LLVM sont en développement : LFortran[78] qui vise à permettre de tester du code de façon interactive et Flang[79].
Le Fortran fait partie des langages proposés par certains compilateurs en ligne, tels que codingground[80], OnlineGDB[81], JDOODLE[82], godbolt Compiler Explorer[83] et le Fortran Playground[84] de la communauté Fortran-lang. Certains proposent le choix entre plusieurs compilateurs Fortran ou plusieurs versions d'un compilateur, ou permettent d'analyser le code avec un débogueur et de voir le langage machine généré. Ces outils permettent donc d'apprendre le langage sans installer de compilateur sur sa machine, ils permettent également de collaborer en ligne sur un projet.
La plupart des éditeurs de texte offrent une coloration syntaxique pour le Fortran : Emacs, Notepad++, Sublime Text, Vim, Neovim, Visual Studio Code... Parmi les environnements de développement intégrés, il existe une version de Code::Blocks destinée au développement en Fortran. Il existe également une version d'Eclipse destinée au Fortran, nommée Photran[88], mais dont la dernière version date de 2015. Sous Windows, le compilateur Intel Fortran est intégré à Visual Studio[89].
Les systèmes de construction de projet tels que CMake et Meson gèrent généralement le Fortran. L'utilitaire makedepf90[90] permet de générer des fichiers Make pour un projet Fortran.
Mais Fortran dispose depuis fin 2020 du gestionnaire de paquets fpm (Fortran Package Manager)[91], qui fait office également de système de construction de projet. Il est inspiré par l'outil Cargo du langage Rust. Il permet en particulier de gérer les dépendances, qu'il peut télécharger automatiquement depuis GitHub. Et il est lui-même écrit en Fortran.
fpt[92] est un outil d'analyse de code Fortran. On peut également citer CamFort[93], un projet universitaire libre, ftncheck[94], qui est limité au FORTRAN 77 et qui n'est plus développé depuis 2005. findent[95] est un indenteur de code source qui peut également transformer l'ancien format fixe du Fortran en format libre.
Plusieurs analyseurs de type lint sont disponibles : Flint[96] et fortran-linter[97], logiciels libres écrits en Python, et FortranLint[98], produit commercial.
Lizard[99] est un analyseur de complexité cyclomatique qui prend en charge une vingtaine de langages, dont le Fortran.
Pour le débogage, on peut par exemple utiliser les débogueurs GNU gdb[100] ou idb (Intel Debugger). Pour le profilage sous système de type UNIX, on peut utiliser gprof et Valgrind. La couverture de code peut être évaluée avec Gcov (en).
Fypp[101] est un préprocesseur Python qui peut être utilisé avec n'importe quel langage, tout en étant avant tout destiné au langage Fortran. Il utilise la syntaxe du Python.
PFUnit (en) est un framework de tests unitaires, libre et initialement développé par la NASA[102]. Le framework test-drive[103] est utilisé dans les projets fpm et stdlib, et il prend en charge Meson, CMake et fpm. On peut également citer vegetables[104] et FRUIT[105].
Parmi les générateurs de documentation gérant le Fortran, on peut citer Doxygen, FORD[106] et ROBODoc[107].
Quickstart Fortran[108] permet d'installer facilement sous Microsoft Windows, sans nécessiter les droits d’administration, les outils essentiels pour développer en Fortran : GCC-GFortran, Fortran Package Manager, Git for Windows, OpenBLAS (BLAS/LAPACK), GNU make. Il peut également faciliter l'installation d'Intel OneAPI et de la librairie stdlib en cours de développement.
De nombreuses bibliothèques de calcul ont été développées en Fortran. Certaines sont développées, utilisées, testées et donc déboguées depuis des décennies, ce qui leur assure une très grande fiabilité.
Les normes Fortran n'incluant pas d'instructions graphiques ou d'instructions pour construire des interfaces graphiques, la visualisation peut se faire après exécution avec des outils externes tels que ParaView, ou en appelant des outils de tracé tels que Gnuplot via l'instruction EXECUTE_COMMAND_LINE()
, ou enfin à l'aide de bibliothèques :
Début 2021, les bibliothèques suivantes ne sont plus maintenues depuis au moins 10 ans :
Depuis Fortran 2003, l'interopérabilité du Fortran avec le langage C est normalisée. Le module intrinsèque ISO_C_BINDING définit des constantes de types telle que c_int
ou c_double
, des procédures et constantes permettant en particulier de gérer l'interopérabilité des pointeurs C et Fortran, ainsi que des constantes pour les caractères telles que c_null_char
pour gérer l'échange des chaînes de caractères. Cette partie du langage a reçu des améliorations avec la norme Fortran 2018.
Cette interopérabilité normalisée facilite d'une part l'appel des innombrables bibliothèques écrites en C, et d'autre part l'utilisation par d'autres langages de bibliothèques écrites en Fortran. Julia sait ainsi appeler des fonctions Fortran de manière native avec la function ccall()
. Python peut utiliser des bibliothèques Fortran grâce à F2PY[122] (Fortran to Python interface generator), qui fait partie de NumPy.
Le Fortran côtoie désormais de nombreux autres langages et logiciels pour le calcul scientifique, en particulier :
Par ailleurs, d'autres langages ont été développés dans les années 2000 pour faciliter la programmation parallèle sur les superordinateurs, avant la parution de la norme Fortran 2008. On peut citer X10, développé par IBM depuis 2004, et Chapel, développé par Cray depuis 2009. Un autre langage, Fortress, apparu en 2006 et développé par Sun Microsystems, a été abandonné en 2012. Ces trois langages font partie du projet High Productivity Computing Systems (en) de la DARPA.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.