Fortran

Fortran

Fortran (FORmula TRANslator) est un langage de programmation utilisé principalement en calcul scientifique.

Sommaire

Historique

John Backus, pionnier de l'informatique, publie en 1954 un article titré Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN. Il fallut ensuite deux ans d'effort à l'équipe qu'il dirigeait au sein d'IBM pour écrire le premier compilateur FORTRAN (25 000 lignes, pour l'IBM 704).

Le nom du langage a été écrit conventionnellement en majuscules (FORTRAN) jusqu'en 1992 et l'introduction du Fortran 90 à syntaxe libre. En FORTRAN 77 les lettres minuscules ne faisaient pas partie du langage. Cette convention se retrouve dans cet article et est conforme aux différentes normes du Fortran, de 1966 à aujourd'hui.

Aujourd'hui encore (2011) le langage Fortran reste très utilisé, d'une part en raison de la présence de très nombreuses bibliothèques de fonctions utilisables en Fortran, d'autre part parce qu'il existe des compilateurs Fortran performants qui produisent des exécutables très rapides. Toutefois, beaucoup de programmes scientifiques sont à présent écrits en C et C++[1], dont les compilateurs sont disponibles sur la plupart des machines. D'autres langages compilés sont parfois utilisés pour le calcul scientifique, ainsi, surtout, que des logiciels tels que Scilab ou Matlab, combinant un langage très simple, une interface intuitive, et une bibliothèque numérique et graphique très complète.

Le FORTRAN, ayant été créé à l'époque des cartes perforées (en particulier avec le système FMS), optimisait la mise en page de ses sources dans cette optique, jusqu'au Fortran 90 qui introduit une syntaxe « libre ». Avant Fortran 90, le code commence à partir de la 7e colonne et ne doit pas dépasser la 72e.

  • La colonne 1 peut contenir la lettre C indiquant un commentaire. Le caractère * est aussi accepté.
  • Les colonnes 1 à 5 peuvent contenir une étiquette numérique (facultative) de l'instruction, dont la valeur peut être limitée à 32767 ou 9999 suivant le compilateur (en FORTRAN II des ordinateurs Advanced Scientific Instruments ASI 210 et ASI 2100).
  • La colonne 6 indique une suite de l'instruction précédente.
  • Les colonnes 73 à 80 servent à l'identification et la numérotation des cartes perforées (souvent les trois initiales du projet, du chef de projet ou du programmeur, suivies de numéros de cinq chiffres attribués de dix en dix pour permettre des insertions de dernière minute).

Il faut également noter qu'avant Fortran 90, les espaces n'ont pas de signification entre la 7e et la 72e colonne. Ainsi, la boucle « DO I=1,5 » peut aussi s'écrire « DOI=1,5 ». En revanche, « DO I=1.5 » est équivalent à « DOI=1.5 », une affectation.

De nombreux codes industriels ont été écrits en Fortran et la compatibilité des nouvelles versions avec les précédentes est indispensable, au prix de conserver des notions qui ne s'imposent plus. Pour cette raison, Fortran 90 est complètement compatible avec FORTRAN 77. Les versions suivantes du standard ont cependant introduit des incompatibilités.

Le langage BASIC, dans sa version originale (1964) a été conçu comme un petit langage à caractère pédagogique permettant d'initier les étudiants à la programmation, avant de passer aux langages « sérieux » de l'époque : FORTRAN et Algol. On y retrouve donc quelques traits du langage Fortran.

Compilateurs

Le compilateur libre gcc permet de compiler le Fortran 77 (compilateur g77[2], jusqu'à gcc 3.4.6) et maintenant 90 et 95 (à partir de gcc 4.0.0, qui remplace g77 par gfortran[3],[4]), sur de nombreuses plates-formes. Le compilateur g95[5] est également basé sur gcc, mais ne semble plus maintenu en 2011. Le compilateur g77, même s'il n'est plus distribué avec gcc, peut toujours être compilé séparément[6], et des binaires sont encore disponibles pour certaines architectures[7],[8],[9].

Intel fournit aussi un compilateur de Fortran propriétaire, gratuit pour une utilisation non commerciale[10], pour l'architecture x86 (32 ou 64 bits) sous Linux uniquement. Il est cependant possible d'obtenir une version d'évaluation pour Mac OS X et Windows. Oracle fournit le compilateur Solaris Studio[11], également gratuit sous Linux (x86) et OpenSolaris (x86 et SPARC). IBM a aussi fourni à une époque (2004, jusqu'à sa sortie commerciale) le compilateur XLF pour MacOS X sur architecture PowerPC, en version bêta[12].

Exemple

      PROGRAM DEGRAD 
!                                                                       
! Imprime une table de conversion degrés -> radians                     
! =================================================                     
!                                                                       
! Déclaration des variables                                             
      INTEGER DEG 
      REAL RAD, COEFF 
!                                                                       
! En-tête de programme                                                  
      WRITE ( *, 10) 
   10 FORMAT      (' ',20('*') /                                        &
     &             ' * Degres * Radians *' /                            &
     &             ' ', 20('*') )                                       
!                                                                       
! Corps de programme                                                    
      COEFF = (2.0 * 3.1416) / 360.0 
      DO DEG = 0, 90 
         RAD = DEG * COEFF 
         WRITE ( *, 20) DEG, RAD 
   20 FORMAT         (' *  ',I4,'  * ',F7.5,' *') 
      END DO 
!                                                                       
! Fin du tableau                                                        
      WRITE ( *, 30) 
   30 FORMAT      (' ',20('*') ) 
!                                                                       
! Fin de programme                                                      
      STOP 
      END PROGRAM DEGRAD

Notes:

  • Ce programme est écrit en Fortran 90.
  • Le symbole « ! » indique un commentaire. Il peut être remplacé par les caractères « c » ou « * » lorsqu'il est utilisé comme premier caractère.
  • La déclaration des variables est facultative en Fortran, mais sans déclaration, la variable DEG serait alors de type REAL (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).
  • L'instruction WRITE se réfère à une unité d'entrée-sortie (ici * désigne le terminal) et une spécification de format. Par exemple le format d'étiquette 20 indique qu'il faut écrire un espace, une étoile et deux espaces, un entier (la valeur de DEG) sur 4 caractères puis la valeur de RAD sur 7 caractères dont 5 après le point décimal et enfin un espace et une étoile. Une déclaration de FORMAT peut être n'importe où ; une habitude est de la mettre juste après le WRITE à laquelle elle se réfère, une autre est de les mettre toutes à la fin de l'unité de programme. Plus d'une instruction WRITE peut faire référence à un même FORMAT.
  • Le caractère / à la fin d'une ligne indique une suite à la ligne suivante et le caractère & au début de la ligne indique la suite de la ligne précédente.
  • L'instruction « 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.

Différentes versions de Fortran

Le langage Fortran a connu de nombreuses évolutions[13] :

  • 1956. Fortran II n'avait qu'une seule instruction de branchement conditionnel (« IF-arithmétique ») à trois adresses : IF (A-B) 10, 20, 30 indiquait de sauter aux instructions d'étiquette 10, 20 ou 30 selon que A-B était négatif, nul ou positif. Cette forme de IF était la seule à exister sur l'IBM 1130 lancée pourtant plus de dix ans plus tard.
  • 1958. Fortran III n'est jamais sorti sous forme de produit.
  • 1962. Fortran IV introduit, entre autres, l'instruction « IF-logique », permettant d'écrire IF (A .GE. B) GOTO 10 (aller à 10 si A est supérieur ou égal à B).
  • FORTRAN V était le nom envisagé au départ pour PL/I, langage de programmation universel d'IBM qui devait réunir les meilleurs aspects de Fortran (pour les applications scientifiques), de COBOL (pour les applications de gestion), avec quelques emprunts à Algol.
  • 1965. Le standard ECMA Fortran[14], situé à cheval entre le « Basic Fortran » et le « Fortran ISO »
  • 1966. Fortran 66 (ANSI X3.9-1966)[15] est la première version officiellement standardisée (par l'American Standards Association) de Fortran. On la confond souvent avec Fortran IV.
  • 1978. Fortran 77 (ANSI X3.9-1978)[16], entre autres améliorations, facilite la programmation structurée avec des blocs « IF / THEN / ELSE / ENDIF ». En 1978, une extension introduit entre autres « DO WHILE / END DO »[17].
  • 1990. Fortran 90 (ANSI X3.198-1992)[18] : modules, récursivité, surcharge des opérateurs, nouveaux types de données, etc. C'est une mise à jour importante pour mettre Fortran au niveau des autres langages modernes. Les restrictions concernant la mise en forme des programmes (colonnes 1 à 7, 72 à 80 ...) disparaissent : l'écriture se fait en format libre.
  • 1995. Fortran 95 (ISO/IEC 1539-1:1997)[19]
  • 2003. Fortran 2003 (ISO/IEC 1539-1:2004)[20] : comme le COBOL, Fortran supporte maintenant la programmation orientée objet. L'interface avec le langage C est assurée par le module interne ISO_C_BINDING, qui permet à un programme Fortran d'accéder facilement aux innombrables bibliothèques disponibles en C.
  • 2008. Fortran 2008 (ISO/IEC 1539-1:2010)[21].

Bibliothèques graphiques

Les normes Fortran n'incluent pas d'instructions graphiques. Pour pallier ce manque, il faut utiliser des bibliothèques :

  • gtk-fortran : interface GTK+ 2 et 3 / Fortran, entièrement écrite en Fortran 2003 standard grâce au module ISO_C_BINDING. Multiplateforme (Linux, Windows, Mac OS X...) Projet lancé en janvier 2011. Logiciel libre sous licence GPL 3.
  • pilib (Platform Independent Library for Fortran) : interface Fortran 90-95 / GTK. Développement arrêté. Logiciel libre.
  • Quickwin : bibliothèque graphique fournie avec le Compaq Visual Fortran (désormais Intel Visual Fortran). Ne fonctionne que sous Windows.
  • Winteracter : interface graphique et outils de visualisation. Logiciel commercial pour Windows, Linux et MacOS X.
  • SansGUI : interface commerciale pour Windows et Compaq Visual Fortran.
  • DISLIN : bibliothèque graphique créée par le Max Planck Institute for Solar System Research. Multiplate-formes (UNIX, Linux, FreeBSD, OpenVMS, Windows et MS-DOS). Fonctionne avec de nombreux compilateurs. Gratuit pour un usage non-commercial.
  • JAPI (Java Application Programming Interface) : interface Java/Fortran permettant de créer une interface graphique complète pour les programmes Fortran. Multiplate-formes (Windows, Linux, Solaris). Fonctionne avec de nombreux compilateurs (entre autres gfortran, Compaq Visual Fortran...) Logiciel libre sous licence LGPL.
  • Ftcl : interface Fortran-Tcl/TK. Gratuit, open-source.
  • f90gl : interface du Fortran 90 avec OpenGL, GLU et GLUT. Multiplate-formes. Fonctionne avec de nombreux compilateurs. Licence : domaine public.
  • GrWin Graphics Library : logiciel libre pour Windows.
  • Xeffort : bibliothèque graphique pour Visual Fortran. logiciel libre pour Windows.
  • g2 graphical library : pour Linux, AIX, Digital Unix, SunOS, IRIX, OpenVMS, Windows. Logiciel libre sous licence LGPL.
  • PLplot : bibliothèque pour tracer des courbes scientifiques. Multiplate-formes (Linux, OpenSolaris, Unix, MS-DOS, Windows, Mac OS X). Logiciel libre sous licence LGPL.
  • PGPLOT : bibliothèque de routines graphiques, interactive, gratuite, multiplate-forme, gère beaucoup de périphériques de sortie.
  • PSPLOT, pour générer des dessins en PostScript.

Voir aussi

Bibliographie

  • The history of FORTRAN I, II, and III par John Backus dans The first ACM SIGPLAN conference on History of programming languages, Los Angeles, CA, pages: 165 - 180, 1978, ISSN:0362-1340.

Liens externes

Notes et références


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Fortran de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • FORTRAN — Paradigmen: prozedural, imperativ, strukturiert, objektorientiert Erscheinungsjahr: 1957 Entwickler: John W. Backus, IBM …   Deutsch Wikipedia

  • Fortran — Basisdaten Paradigmen: prozedural, imperativ, strukturiert, objektorientiert …   Deutsch Wikipedia

  • FORTRAN — (FORmula TRANslator) est un langage de programmation utilisé principalement en mathématiques et dans les applications de calcul scientifique. Sommaire 1 Historique 2 Exemple 2.1 Différentes versions de Fortran …   Wikipédia en Français

  • FORTRAN — (formula translation) Un des premiers langages de programmation de haut niveau, par opposition aux langages machine ou aux langages d’assemblage, Fortran est un des langages les plus représentatifs de la classe des langages dits algorithmiques,… …   Encyclopédie Universelle

  • fortran — FORTRÁN s.n. (inform.) Limbaj simbolic folosit în programarea automată, orientat spre probleme tehnico ştiinţifice. – Din engl., fr. fortran. Trimis de tavilis, 13.08.2004. Sursa: DEX 98  fortrán s. n. Trimis de siveco, 10.08.2004. Sursa:… …   Dicționar Român

  • Fortran — also FORTRAN [ˈfɔːtræn ǁ ˈfɔːr ] noun [uncountable] COMPUTING abbreviation for formula translation; a language used for computer programming, especially for complicated scientific and mathematical uses: • the task of writing programs in Fortran • …   Financial and business terms

  • Fortran 5 — were a band from the early 90s, similar to such other acts of the time as The Orb, Fluke and Underworld. Their sound was mainly pop/electronic, but were notable in particular for their offbeat cover versions of Pink Floyd s Bike and Derek The… …   Wikipedia

  • FORTRAN — n. (Computers) [Formula Translation.] a higher programming language with an instruction set designed for ease of expression of mathematical functions, much used in programming of scientific and mathematical problems. [PJC] …   The Collaborative International Dictionary of English

  • FORTRAN — das; s Kurzw. für engl. formula translator> bes. auf wissenschaftliche u. technische Aufgaben ausgerichtete Programmiersprache (EDV) …   Das große Fremdwörterbuch

  • Fortran — computer programming language, 1956, from combination of elements from FORMULA (Cf. formula) + TRANSLATION (Cf. translation) …   Etymology dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”