CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Fortran - Wikipédia

Fortran

Un article de Wikipédia, l'encyclopédie libre.

Vous avez de nouveaux messages (diff ?).
image:Langage_progr.png
Cet article fait partie de la série
Langages de programmation
Langages à objets
C++ - C#
Delphi - Eiffel - Java
Groovy - Python - Ruby
Simula - Smalltalk
Visual Basic - WinDev
Langages impératifs
APL - ASP - Assembleur
BASIC - C - Cobol
Forth - Fortran - Logo
Pascal - Limbo - Perl - PHP
Langages fonctionnels
Haskell - ML/OCaml
Lisp/Common Lisp
Scheme
XSLT
Langages déclaratifs
Clips - Prolog
Langages concurrents
Ada 95 - Erlang
Langage de balisage
HTML - SGML - XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

Fortran est un langage de programmation utilisé principalement en mathématiques et dans les applications de calcul scientifique.

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 dirige au sein d'IBM pour écrire le premier compilateur FORTRAN (25 000 lignes, pour l'IBM 704).

Aujourd'hui encore (2005) 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, il est parfois détrôné, même pour des applications scientifiques, par les langages C et C++.

Le Fortran ayant été créé à l'époque des cartes perforées (en particulier avec le système FMS), il a gardé une certaine rigidité dans la mise en page du source, jusqu'au Fortran 90. Le code a dû longtemps par exemple commencer à partir de la 7e colonne et ne pas dépasser la 72e (les colonnes 73 à 80 étant réservées pour la numérotation des cartes perforées).

De plus, de nombreux codes industriels ont été écrits depuis longtemps en Fortran, et la compatibilité des nouvelles versions avec les précédentes est indispensable, au prix de la conservation de notions obsolètes.

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.


Il existe des extensions libres, basées sur gcc pour compiler les Fortran 77 et maintenant 90 et 95, entre autres sous Linux. Intel fournit aussi un compilateur propriétaire gratuit pour le Fortran 90, pour l'architecture x86.

[modifier] Exemples

      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 ! comme première caractère indique un commentaire.
  • La déclaration des variables est facultative en Fortran, mais la variable DEG serait alors de type REAL (les variables dont le nom commence par IJKMLN 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 * : le terminal) et une spécification de format. Exemple le format d'étiquette 20 indique qu'il faut écrire un espace, une étoile et deux espaces, puis un flottant sur 4 caractères dont un après le point décimal, etc. 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.
  • le caractère & a la fin d'une ligne indique une suite de la ligne précédente.
  • l'instruction "DO DEG = 0,90" indique de répéter les instructions qui suivent (jusqu'à la ligne 100 comprise) pour des valeurs de DEG variant entre 0 et 90 (par pas de 1).
  • l'instruction END DO marque la fin d'un DO.

[modifier] Différentes versions de Fortran

  • FORTRAN II (1956) n'avait qu'une seule instruction de branchement ("IF-arithmétique") à 3 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.
  • FORTRAN III (1958) n'est jamais "sorti" sous forme de produit.
  • FORTRAN IV (1962) a 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.
  • FORTRAN 66 est la première version officiellement standardisée (par l'American Standards Association) de FORTRAN. On la confond souvent avec FORTRAN IV.
  • FORTRAN 77, entre autres améliorations, facilite la programmation structurée avec des blocs "IF (...) THEN / ELSE / ENDIF". En 78, une extension introduit DO WHILE / END DO.
  • FORTRAN 90 : modules, récursivité, surcharges d'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 enfin en format libre.
  • FORTRAN 95
  • FORTRAN 2003 : comme son vieux collègue COBOL, Fortran supporte maintenant la programmation objet

[modifier] Références

[modifier] Liens interne

[modifier] Liens externes

[pdf] Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN, 10 novembre 1954.

[modifier] Bibliothèques graphiques

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

  • pilib (Platform Independent Library for Fortran) : interface Fortran/GTK. En cours de développement. 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. Multi-plate-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. Multi-plate-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. Multi-plate-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, VMS, Windows. Logiciel libre sous licence LGPL.
  • PLplot : bibliothèque pour tracer des courbes scientifiques. Multi-plate-formes (Linux, Unix, MS-DOS, Windows, Mac OS X). Logiciel libre sous licence LGPL.

[modifier] 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.

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com