Programmeertaal Fortran

Overzicht

Fortran, een afkorting voor "Formula Translation," is een high-level programmeertaal die bijzonder goed geschikt is voor wetenschappelijke en technische toepassingen. Het was een van de eerste programmeertalen die werd ontwikkeld voor elektronische computers en is sinds zijn ontstaan aanzienlijk geëvolueerd. Fortran maakt efficiënte manipulatie van array-gegevens mogelijk en ondersteunt complexe wiskundige berekeningen, waardoor het een taal van keuze is voor numerieke weersvoorspelling, computationele fysica en bio-informatica, onder andere gebieden.

Historische Aspecten

Creatie

Fortran werd in de jaren vijftig ontwikkeld door IBM als een taal die was ontworpen voor numerieke berekeningen en wetenschappelijk rekenen. De eerste versie, Fortran I, werd uitgebracht in 1957. Het kernidee was om een taal te creëren waarmee wetenschappers en ingenieurs programma's konden schrijven zonder de intricaties van de onderliggende hardware te hoeven kennen.

Evolutie

Verschillende versies van Fortran werden geïntroduceerd, waarbij elke versie nieuwe functies toevoegde en de bruikbaarheid verbeterde. Fortran II volgde kort daarna, met gestructureerde programmeerfuncties. In 1966 werd Fortran IV geïntroduceerd, dat een industriestandaard werd. Fortran 77 (uitgebracht in 1978) voegde functies toe zoals karakterdatatypes en verbeterde I/O-mogelijkheden.

Vanaf 1991 introduceerde Fortran 90 array-programmering, modulaire programmering, recursie en dynamische geheugenallocatie. Fortran 2003 en Fortran 2008 verbeterden de taal verder met functies zoals Objectgeoriënteerd Programmeren en verbeterde interoperabiliteit met de C-programmeertaal. De meest recente standaard, Fortran 2018, bracht verdere verbeteringen, waaronder verbeterde compatibiliteit en functionaliteit voor parallelle verwerking.

Huidige Staat

Fortran wordt nog steeds actief gebruikt in veel wetenschappelijke en technische disciplines, ondersteund door moderne compilers zoals GNU Fortran (gfortran) en Intel Fortran Compiler. Het heeft een grote legacy-codebasis, en veel wetenschappelijke bibliotheken zijn geschreven in Fortran, waardoor het een cruciale taal is in bepaalde domeinen.

Syntax Kenmerken

Sterk Typen

Fortran is een sterk getypeerde taal die expliciete declaratie van variabele types vereist. Bijvoorbeeld:

INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name

Array Behandeling

Fortran excelleert in het omgaan met arrays, waardoor bewerkingen op hele arrays met eenvoudige syntaxis mogelijk zijn.

REAL, DIMENSION(10) :: A
A = 2.0 * A  ! Vermenigvuldigt elk element van array A met 2

Controle Structuren

Fortran biedt conventionele controle structuren zoals lussen en voorwaardelijke uitspraken.

DO i = 1, 10
   IF (A(i) > 0) THEN
       PRINT *, 'Positief'
   END IF
END DO

Functies en Subroutines

Fortran staat de definitie van functies en subroutines toe voor modulaire programmering.

FUNCTION square(x)
   REAL :: square
   REAL, INTENT(IN) :: x
   square = x * x
END FUNCTION square

Impliciete Typing

Standaard heeft Fortran een regel waarbij variabelen met namen die beginnen met "I", "J", "K", "L", "M" of "N" impliciet INTEGER zijn. Dit kan worden overschreven voor duidelijkheid.

IMPLICIT NONE  ! Schakelt impliciete typing uit
INTEGER :: I
REAL :: R

Do-While Lussen

Fortran ondersteunt do-while lussen voor herhaalde uitvoering op basis van een voorwaarde.

i = 1
DO WHILE (i <= 10)
   PRINT *, i
   i = i + 1
END DO

Afgeleide Types

Fortran heeft krachtige door de gebruiker gedefinieerde types, bekend als afgeleide types, die structuurachtige gegevensdefinities mogelijk maken.

TYPE :: Person
   CHARACTER(len=20) :: name
   INTEGER :: age
END TYPE Person

TYPE(Person) :: p1

Module Ondersteuning

Fortran ondersteunt modules voor het encapsuleren van gegevens en procedures, wat codehergebruik en organisatie bevordert.

MODULE myModule
   CONTAINS
   SUBROUTINE mySubroutine()
       ! Implementatie
   END SUBROUTINE
END MODULE

Gebruik van Pointers

Fortran ondersteunt pointers die dynamisch geheugenbeheer vergemakkelijken, vergelijkbaar met talen zoals C.

REAL, POINTER :: pA
ALLOCATE(pA(10))  ! Dynamisch een array toewijzen

Interoperabiliteit

Fortran heeft functies die interoperabiliteit met C creëren, waardoor gemengde-taalprogrammering mogelijk is.

INTERFACE
   FUNCTION c_function(x) BIND(C, NAME="c_function")
       INTEGER(C_INT) :: c_function(INTEGER)
   END FUNCTION c_function
END INTERFACE

Ontwikkeltools en Runtime

Compilers en Interpreters

De populairste Fortran-compilers zijn onder andere:

Geïntegreerde Ontwikkelomgevingen (IDE's)

Hoewel Fortran niet zo vaak wordt geassocieerd met moderne IDE's als sommige andere talen, ondersteunen verschillende IDE's het:

Projecten Bouwen

Het bouwen van een Fortran-project omvat doorgaans het maken van bronbestanden met een .f, .f90 of .f95 extensie en het compileren ervan met een Fortran-compiler. Een typische opdracht kan er als volgt uitzien:

gfortran -o my_program my_source.f90

Toepassingen van Fortran

Fortran wordt uitgebreid gebruikt in wetenschappelijk rekenen, numerieke weersvoorspelling, klimaatmodellering, computationele fysica, computationele chemie en bio-informatica. Het staat vooral bekend om zijn prestaties bij zware numerieke berekeningen en simulaties.

Vergelijking met Vergelijkbare Talen

De belangrijkste concurrenten van Fortran op het gebied van wetenschappelijk en technisch programmeren zijn:

Tips voor Bron-naar-Bron Vertaling

Fortran heeft verschillende bron-naar-bron vertaaltools die ontwikkelaars kunnen helpen om legacy-code om te zetten naar meer hedendaagse talen of om bestaande code te optimaliseren. Enkele tools zijn:

Deze tools vergemakkelijken de overgang van oudere Fortran-versies of volledig verschillende programmeerparadigma's, terwijl ze helpen de prestaties en functionaliteit te behouden.