Fortran – programmeringssprog for videnskabelige og numeriske beregninger
Fortran — klassisk og højt ydende programmeringssprog til videnskabelige og numeriske beregninger; historie, standarder og moderne anvendelser.
Fortran er et programmeringssprog, der først blev udviklet i 1950'erne. Det bruges stadig i dag. Det er et processuelt sprog, der hovedsagelig anvendes til videnskabelige beregninger og numerisk analyse.
Den første FORTRAN-compiler blev udviklet i 1954-57 af et team hos IBM under ledelse af John W. Backus. Denne compiler var den første compiler til et højniveausprog. Forfatterne var bekymrede for, at ingen ville bruge sproget, hvis programmer skrevet i det ikke kunne køre nær så hurtigt som programmer skrevet i assemblagesprog. Så de gjorde den til en optimerende compiler.
På grund af den store brug af sproget af forskere, der arbejdede med numerisk arbejde, voksede sproget på en måde, der tilskyndede compilerforfattere til at producere compilere, der genererede kode af høj kvalitet (hurtig). Der findes mange leverandører af højtydende compilere. En stor del af arbejdet og forskningen inden for compilerteori og -design skyldes behovet for at generere god kode til Fortran-programmer.
Der er udkommet adskillige revisioner af sproget, herunder det meget kendte FORTRAN IV (det samme som FORTRAN 66), FORTRAN 77 og Fortran 90. Den seneste formelle standard for sproget blev offentliggjort i 1997 og er kendt som Fortran 95.
I begyndelsen var sproget baseret på en præcis formatering af kildekoden og en stor brug af nummerering af instruktioner og "go to"-instruktioner, der i Fortran er skrevet som goto.
Hver version indførte "moderne" programmeringskoncepter, såsom kildekodekommentarer og tekstudskrivning, IF-THEN-ELSE (i FORTRAN 77), rekursion (i Fortran 90) og parallelle konstruktioner, samtidig med at man forsøgte at bevare Fortrans "slanke" profil og høje ydeevne.
Kort opsummering og kontekst
Fortran (FOReign TRANslator) er et af de ældste højniveausprog, men det er fortsat udbredt inden for højtydende videnskabelig beregning. Sprogets udvikling har været drevet af behov for effektiv behandling af numeriske algoritmer, store datamængder og vektoriserbare/paralleliserbare kode-segmenter.
Sprogets kendetegn
- Arrayorientering: Sproget har indbyggede array-operationer og vektorisering, hvilket gør det naturligt til matrice- og vektorberegninger.
- Effektivitet: Compiler-forbedringer som loop-optimering, inline-udvidelser, vektorisering og cache-optimering har givet Fortran-lang kode høj ydeevne på numeriske opgaver.
- Modularitet og datatyper: Moderne Fortran understøtter moduler, brugerdefinerede (afledte) typer, operator-overloading og informationenkapsling.
- Parallelisme: Standardiserede tiltag til parallel programmering (fx coarrays og DO CONCURRENT) gør det muligt at skrive parallel kode direkte i sproget.
- Interoperabilitet: Nyere standarder indeholder mekanismer til at udveksle data og kalde kode fra andre sprog, især C (ISO_C_BINDING).
Moderne standarder
Selvom Fortran 95 (ISO-standarden fra 1997) er nævnt ovenfor, er sproget siden blevet videreudviklet. Efter Fortran 95 kom der flere standarder, blandt andre Fortran 2003, Fortran 2008 og Fortran 2018. Disse nyere standarder indførte væsentlige forbedringer som:
- Objektorienterede funktioner og bedre abstraktion (Fortran 2003).
- Standardiseret C-interoperabilitet (Fortran 2003) for nem integration med C-biblioteker.
- Coarray-syntaks og andre parallelle konstruktioner (Fortran 2008) samt DO CONCURRENT for eksplicit konkurrence.
- Yderligere sprogforbedringer og biblioteksudvidelser i Fortran 2018.
Anvendelsesområder
Fortran bruges især der, hvor numerisk præcision og ydeevne er kritisk. Typiske anvendelser omfatter:
- Computational fluid dynamics (CFD) og vejr-/klimamodellering
- Strukturmekanik, finite element-analyse
- Astrofysik, geofysik og numerisk simulering
- Kemisk og molekylær dynamik
- Lineær algebra-biblioteker som BLAS og LAPACK er ofte implementeret eller brugt fra Fortran
Mange akademiske og industrielle kodebaser er udviklet over årtier i Fortran, og det gør sproget særligt vigtigt i arvegods (legacy) og i projekter, hvor langtidsholdbarhed og performance tæller.
Compilere og økosystem
Der findes både kommercielle og åbne compilers til Fortran. Eksempler er GNU Fortran (gfortran), Intel Fortran, NAG, og leverandørspecifikke compilere fra bl.a. IBM og NVIDIA. Fortran-økosystemet indeholder også adskillige biblioteker til lineær algebra, FFT, parallelisering og I/O.
Programmeringspraksis og råd
- Undgå unødig brug af goto; strukturér kode med moduler, procedurer og kontrollerede kontrolstrukturer.
- Skriv array-orienteret kode når muligt — det lader compileren optimere loops og udnytte SIMD.
- Brug moderne standarder (Fortran 2003/2008/2018) for bedre modularitet, interoperabilitet og parallelle muligheder.
- Test og vedligehold gammel kode løbende; mange ældre projekter kan migreres trinvis ved hjælp af kompatibilitetsfunktioner.
Afsluttende bemærkning
Fortran har bevaret sin plads i videnskabelige kredse netop fordi sprogets udvikling kombinerer nye programmeringskoncepter med et stærkt fokus på ydeevne. For projekter, der kræver høj numerisk præcision og gennemprøvede biblioteker, er Fortran fortsat et naturligt valg.
Betydning og stavning af navnet
Navnet "Fortran" er en forkortelse for "Formula Translation". Sproget var tidligere kendt som FORTRAN (og ældre varianter af det er det stadig). Siden Fortran 90 har man opgivet at bruge stortallet. I de offentliggjorte formelle standarder anvendes "Fortran".
Standarder
De to standarder nedenfor vedrører de nuværende Fortran-implementeringer.
- ANSI X3.198-1992 (R1997). Titel: Programmeringssprog "Fortran" Udvidet. Uformelt kendt som Fortran 90. Denne standard blev offentliggjort af ANSI og blev aldrig en international standard (ISO).
- ISO/IEC 1539-1:1997. Titel: Informationsteknologi - Programmeringssprog - Fortran - Del 1: Grundsprog. Uformelt kendt som Fortran 95. Der er yderligere 2 dele til denne standard. Del 1 er blevet formelt vedtaget af ANSI.
Søge