Fortran, förkortning av "Formula Translation," är ett hög-nivå programmeringsspråk som är särskilt väl lämpat för vetenskapliga och ingenjörsmässiga tillämpningar. Det var ett av de första programmeringsspråken som utvecklades för elektroniska datorer och har utvecklats avsevärt sedan sin början. Fortran möjliggör effektiv manipulation av arraydata och stöder komplexa matematiska beräkningar, vilket gör det till ett val av språk för numerisk väderprognos, beräkningsfysik och bioinformatik, bland andra områden.
Fortran utvecklades på 1950-talet av IBM som ett språk utformat för numeriska beräkningar och vetenskaplig databehandling. Den första versionen, Fortran I, släpptes 1957. Den centrala idén var att skapa ett språk som skulle tillåta forskare och ingenjörer att skriva program utan att behöva känna till detaljerna i den underliggande hårdvaran.
Flera versioner av Fortran introducerades, där varje version lade till nya funktioner och förbättrade användbarheten. Fortran II följde kort därefter och lade till strukturerad programmering. År 1966 introducerades Fortran IV, som blev en branschstandard. Fortran 77 (släppt 1978) lade till funktioner som teckendatatyp och förbättrade I/O-funktioner.
Från och med 1991 introducerade Fortran 90 arrayprogrammering, modulär programmering, rekursion och dynamisk minnesallokering. Fortran 2003 och Fortran 2008 förbättrade språket ytterligare med funktioner som objektorienterad programmering och förbättrad interoperabilitet med C-programmeringsspråket. Den senaste standarden, Fortran 2018, medförde ytterligare förbättringar, inklusive förbättrad kompatibilitet och funktionalitet för parallell bearbetning.
Fortran används fortfarande aktivt inom många vetenskapliga och ingenjörsmässiga discipliner, stödd av moderna kompilatorer som GNU Fortran (gfortran) och Intel Fortran Compiler. Det har en stor arvskodbas, och många vetenskapliga bibliotek är skrivna i Fortran, vilket gör det till ett kritiskt språk inom vissa områden.
Fortran är ett starkt typat språk som kräver explicit deklaration av variabeltyper. Till exempel:
INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name
Fortran utmärker sig i hantering av arrayer, vilket möjliggör operationer på hela arrayer med enkel syntax.
REAL, DIMENSION(10) :: A
A = 2.0 * A ! Multiplicerar varje element i array A med 2
Fortran tillhandahåller konventionella kontrollstrukturer som loopar och villkorssatser.
DO i = 1, 10
IF (A(i) > 0) THEN
PRINT *, 'Positiv'
END IF
END DO
Fortran tillåter definition av funktioner och subrutiner för modulär programmering.
FUNCTION square(x)
REAL :: square
REAL, INTENT(IN) :: x
square = x * x
END FUNCTION square
Som standard har Fortran en regel där variabler med namn som börjar med "I", "J", "K", "L", "M" eller "N" implicit är INTEGER. Detta kan åsidosättas för tydlighet.
IMPLICIT NONE ! Inaktiverar implicit typning
INTEGER :: I
REAL :: R
Fortran stöder do-while-loopar för upprepad exekvering baserat på ett villkor.
i = 1
DO WHILE (i <= 10)
PRINT *, i
i = i + 1
END DO
Fortran har kraftfulla användardefinierade typer kända som härledda typer, vilket möjliggör struktur-liknande datadefinitioner.
TYPE :: Person
CHARACTER(len=20) :: name
INTEGER :: age
END TYPE Person
TYPE(Person) :: p1
Fortran stöder moduler för inkapsling av data och procedurer, vilket främjar kodåteranvändning och organisation.
MODULE myModule
CONTAINS
SUBROUTINE mySubroutine()
! Implementering
END SUBROUTINE
END MODULE
Fortran stöder pekare som underlättar dynamisk minneshantering, liknande språk som C.
REAL, POINTER :: pA
ALLOCATE(pA(10)) ! Dynamiskt allokera en array
Fortran har funktioner som skapar interoperabilitet med C, vilket möjliggör blandad språkprogrammering.
INTERFACE
FUNCTION c_function(x) BIND(C, NAME="c_function")
INTEGER(C_INT) :: c_function(INTEGER)
END FUNCTION c_function
END INTERFACE
De mest populära Fortran-kompilatorerna inkluderar:
Även om Fortran inte är lika vanligt förknippat med moderna IDE:er som vissa andra språk, stöder flera IDE:er det:
Att bygga ett Fortran-projekt involverar vanligtvis att skapa källfiler med en .f, .f90 eller .f95-ändelse och kompilera dem med en Fortran-kompilator. Ett typiskt kommando kan se ut så här:
gfortran -o my_program my_source.f90
Fortran används i stor utsträckning inom vetenskaplig databehandling, numerisk väderprognos, klimatmodellering, beräkningsfysik, beräkningskemi och bioinformatik. Det är särskilt känt för sin prestanda i tunga numeriska beräkningar och simuleringar.
Fortrans huvudkonkurrenter inom vetenskaplig och ingenjörsmässig programmering inkluderar:
Fortran har flera käll-till-källöversättningsverktyg som kan hjälpa utvecklare att konvertera arvskod till mer samtida språk eller optimera befintlig kod. Några verktyg inkluderar:
Dessa verktyg underlättar övergången från äldre Fortran-versioner eller helt andra programmeringsparadigm samtidigt som de hjälper till att bibehålla prestanda och funktionalitet.