Fortran
Fortran, tidligere kalt FORTRAN (FORmula TRANslation), blir ofte ansett som det første programmeringsspråket, siden det i prinsippet (og senere også i praksis) var portabelt. Fortran var uavhengig av datamaskinens maskinspråk, og kunne benyttes av ulike datamaskinarkitekturer.
Fortran | |||
---|---|---|---|
Tilblivelse | 1957 | ||
Paradigme | 6 paradigmer | ||
Designet av | John Backus | ||
Utviklet av | IBM, John Backus | ||
Siste versjon(er) | Fortran 2023 | ||
Typetildeling | manifest, statisk, sterk | ||
Filendelse(r) | .f, .for, .f90 | ||
Lisens | MIT-lisensen | ||
Påvirket av | |||
Speedcoding |
Historie
redigerPå 1950-tallet var utviklingen av kompilatorer en svært vanskelig oppgave. En gruppe ledet av John Backus brukte 18 år på å utvikle Fortran.[1]
Høsten 1953 foreslo Backus overfor sin ledelse i IBM å utvikle et praktisk alternativ til assemblerspråk for å programmere den nye stormaskinen IBM 704. Første utkast til spesifikasjon The IBM Mathematical Formula Translating System (IBMs matematisk formeloversettelsessystem) forelå sommeren 1954. Den første kompilatoren ble lansert april 1957. Behovet for instrukser for å operere en datamaskin ble redusert med faktor 20, og språket ble raskt akseptert.
Erfaringene med utviklingen av Fortran bidro til en kontekstfri grammatikk som ble banebrytende for senere høynivåspråk i form av Backus–Naur-formen. En lignende grammatikk ble foreslått i 1956.[2] Mangelen på formaliserte definisjoner av syntaks, skapte problemer da tidligere utviklere av Fortran forlot IBM. Da Backus utviklet Algol-58, adopterte han syntaks-regler[3] for Fortran og senere programmeringsspråk, som var basert på Pāṇinis sanskrit-grammatikk.[4]
Fortran ble svært populært og ble snart brukt til en rekke formål. Fortrankompilatorer ble utviklet for mange ulike typer datamaskiner. Siden Fortrankompilatorene som ble utviklet ikke var fullstendig kompatible med hverandre kunne man ikke lenger flytte et program fra en maskin til en annen uten å omarbeide det først. Dette førte til en rekke Fortran-dialekter. Med tiden opprettet den amerikanske organisasjonen for standarder (ANSI) en komité for å standardisere Fortran for å sikre portabiliteten til et Fortranprogram, altså slik at man skulle kunne bruke en hvilken som helst datamaskin og kompilator uten å måtte omarbeide koden først. Denne komiteen skulle etter planen ha utarbeidet en ferdig standard i 1966 men ble først ferdig noen år senere. Standarden ble allikevel kjent som FORTRAN 66. FORTRAN 66 blir også kalt FORTRAN IV. Merk at de første versjonene av Fortran ble skrevet med store bokstaver, dette gjelder ikke lenger. Senere revisjoner og standarder er FORTRAN 77, Fortran 90, Fortran 95 (kun en liten revisjon av Fortran 90), Fortran 2003 og Fortran 2008.
Fortran var og er fortsatt veldig populært i det vitenskapelige miljøet og blant ingeniører innen meteorologi, styrkeberegning, styresystemer i tungindustri, kraftverk, og romfart, men i mindre grad i administrative system. Fortran var det dominerende programmeringsspråket i flere tiår etter at det ble utviklet og er fortsatt et av de vanligste programmeringsspråkene i bruk. I den senere tid har Fortran fått støtte for objektorientering og «hand-shaking» med C/C++.
Fortran i dag
redigerSelv om Fortran 90 og senere versjoner har tilført mange egenskaper som en kan vente seg av et moderne programmeringsspråk, blir fortsatt Fortran regnet for å være et gammeldags språk. En grunn til dette kan være at det meste av koden som er i bruk i dag er kodet i FORTRAN 77, før språket ble modernisert. Historisk sett hadde man heller ikke så kraftige maskiner som nå, slik at det var viktigere at programmene var raske enn at de var lette å forstå for en menneskelig leser av koden. Svært lite ny proprietær programvare blir laget i Fortran, men i forskningsmiljøet er fortsatt Fortran en favoritt på grunn av det store fokuset på hastighet.
Kodeeksempler i Fortran
redigerEt enkelt og vanlig eksempel på kodesnutter i programmeringsspråk er å skrive ut beskjeden «Hello, World!» til skjermen. Denne kodesnutten kan bli kjørt på enhver Fortran 90/95-kompilator.
write(*,*)"Hello, World!"
end
Volumet av en sylinder
redigerDette programmet regner ut volumet til en sylinder og kan bli kompilert og kjørt med enhver Fortran 90/95-kompilator. Teksten som følger utropstegn (!) er kommentarer og vil ikke bli tatt hensyn til av programmet.
program sylinder
! Regn ut volumet til en sylinder.
implicit none ! Krever at samtlige variable blir deklarert (gitt en type)
! I eldre versjoner av fortran ble variable deklarert implistt,
! avhengig av den første bokstaven i variabelnavnet
integer :: ierr ! Denne variabelen er et heltall
real :: radius,height,volume ! mens denne variabelen er et flyttall
real,parameter :: pi = 3.14159 ! Denne variabelen er en konstant og kan ikke bli endret iløpet av programmet
do
! Spør brukeren om radius og høyde og leser dem inn
write (*,*) "Tast inn radius og høyde, 'q' for å avslutte."
read (*,*,iostat=ierr) radius,height
! Dersom radius og høyde ikke kunne leses inn fra input avsluttes programmet
if (ierr /= 0) stop "ending program"
! Regn ut volumet. ** betyr opphøyd i
volume = pi*height*radius**2
! Vis innvariablene (radius, height) og resultatet (volume) på skjermen
write (*,"(1x,'radius=',f6.2,5x,'height=',f6.2,5x,'volume=',f6.2)") radius,height,volume
end do
end program sylinder
Referanser
rediger- ^ John W. Backus, R. J. Beeper, Sheldon F. Best, Richard Goldberg, Lois M. Haibt, Harlan L. Herrick, Robert A. Nelson, David Sayre, Peter B. Sheridan, H. Stern, Irving Ziller, R. A. Hughes og Roy Nutt: The Fortran automatic coding system, Western Joint Computer Conference, 1957, sidene 188–198
- ^ N. Chomsky: Three models for the description of the language, IRE, Transanctions on Information theory, IT-2:3, 1956, sidene 113–124
- ^ P. Z. Ingerman: Panini-Backus form suggested, Communications of the Association for Computing Machinery 10:3, 1967, side 137
- ^ Richard. L. Wexelblat: History of Programming Languages, Academic Press, New York, juni 1981, side 162, ISBN 0127450408, ISBN 978-0127450407