Fortran är ett av de allra första högnivåprogramspråken, ursprungligen konstruerat på 1950-talet och fortfarande i bruk. Namnet är en förkortning av "Formula Translation" ("Formel-översättning"). Namnet var från början Fortran med stora bokstäver men den officiella språkstandarden använder numera namnet Fortran.

Fortran används huvudsakligen för teknisk/vetenskaplig programmering och numerisk analys. Från början var språket rent procedurellt, men numera innehåller det också visst stöd för objektorienterad programmering.

Historik och versioner redigera

Den första Fortran-kompilatorn utvecklades 19541957 för IBM 704 av en grupp inom IBM ledd av John W. Backus. Man lade stor vikt vid att den kompilerade koden skulle vara snabb och optimerad, med en prestanda jämförbar med assemblerspråk, eftersom man ansåg att det annars var stor risk att ingen skulle använda språket. Många grundläggande tekniker och teorier för konstruktion av kompilatorer har sitt ursprung i behovet att generera bra kod för Fortranprogram.

Fortran fick snabbt stor spridning bland forskare och tekniker för användning till numeriskt krävande problem och algoritmer. Flera standardiserade versioner av Fortran har definierats, bl.a. Fortran IV (även känt som Fortran 66), Fortran 77 och Fortran 90. De senaste formella standarderna är Fortran 95, publicerad 1997, Fortran 2000, publicerad 2000, Fortran 2003, publicerad 2004, Fortran 2008, publicerad 2010 och Fortran 2018, publicerad november 2018.

Egenskaper redigera

De första versionerna av språket krävde strikt formatering med satser skrivna inom vissa positioner på raden och med endast en sats per rad. Fortran saknade också från början strukturerande satser som if-then-else och moderna loop-satser och använde sig istället av enkla hoppkommandon och satsnummer. Dessa begränsningar har tagits bort i nyare versioner av språket samtidigt som man har strävat efter att behålla det ursprungliga språkets smala profil och höga prestanda.

Eftersom Fortran var det första försöket att konstruera ett högnivåspråk har det en del egenskaper som måste betraktas som föråldrade med nutida ögon. Det är till exempel svårt att lexikalt analysera och tolka språket och ett enda felskrivet tecken kan helt förändra betydelsen och leda till exekveringsfel snarare än kompileringsfel. Fortran har "dödförklarats" många gånger men tack vare sina starka sidor, med effektiv och högpresterande kod och aritmetik för dubbel precision och komplexa tal, används Fortran dock fortfarande för framför allt vetenskapliga och tekniska problem.

En udda egenskap i Fortran är att variabler inte behöver typdeklareras, varvid begynnelsebokstaven i ett variabelnamn avgör variabelns datatyp. En odeklarerad variabel som börjar med I, J, K, L, M och N blir implicit en heltalsvariabel (INTEGER) medan övriga begynnelsebokstäver implicit blir flyttalsvariabler (REAL eller DOUBLE PRECISION). Dessa konventioner har i viss mån spridits till andra programmeringsmiljöer, även i hårt typade språk där variablerna deklareras i förväg.

I senare Fortran-versioner kan deklarationstvång aktiveras med programraden IMPLICIT NONE, varvid alla variabler måste typdeklareras och då ges namn som väljes fritt av programmeraren.

Programexempel redigera

"Hello, World!" i Fortran 77 och 90

C Hello, World i FORTRAN 77
C (Varje rad måste starta i kolumn 7 eller senare)
      PROGRAM HELLO
      WRITE(*,*) 'Hello, World!'
      END
! Hello, World i Fortran 90
program HelloWorld
   print *, "Hello, World!"
end program

Standarder redigera

Nedanstående standarder beskriver de senaste Fortran-versionerna.

  1. ANSI X3.198-1992 (R1997). Title: Programming Language "Fortran" Extended. Informellt kallat Fortran 90.
  2. ISO/IEC 1539-1:2010. Title: Information technology – Programming languages – Fortran – Part 1: Base language. Informellt kallat Fortran 2008. Standarden innehåller ytterligare två delar.
  3. ISO/IEC 1539-2:2000 Fortran, Part 2, Varying length character strings
  4. ISO/IEC 1539-3:1999 Fortran, Part 3, Conditional compilation
  5. ISO 8651-1:1988 Graphical Kernel System (GKS) language bindings – Part 1: FORTRAN
  6. ISO/IEC 9593-1:1990 Programmer's Hierarchical Interactive Graphics System (PHIGS) language bindings—Part 1: FORTRAN
  7. ISO/IEC TR 15580:2001 Fortran, Floating-point exception handling (ingår i Fortran 2003)
  8. ISO/IEC TR 15581:2001 Fortran, Enhanced data type facilities (ingår i Fortran 2003)
  9. ISO/IEC TR 19767:2005 Fortran, Enhanced Module Facilities
  10. ISO/IEC 1539-1:2018 Title: Information technology – Programming languages – Fortran – Part 1: Base language https://www.iso.org/standard/72320.html

Övrigt redigera

  • Matlab har sin grund i Fortran