Fortran

Fortran
IBM og John Backus
https://fortran-lang.org
Generell informasjon
Vanlige utvidelser f, for og f90
Dukket opp i 1957
Designet av John Backus
påvirket av hastighetskoding

Fortran (tidligere FORTRAN , [ 1 ]​ sammentrekning av engelsk The IBM Mathematical Formula Translate System ) er et generelt [ 2 ] prosedyremessig [ 3 ] ​, imperativt programmeringsspråk på høyt nivå , som er spesielt tilpasset numerisk beregning og vitenskapelig databehandling . Opprinnelig utviklet av IBM i 1957 for IBM 704-datamaskinen , og brukt til vitenskapelige og tekniske applikasjoner, kom FORTRAN til å dominere dette området av programmering tidlig og har vært i kontinuerlig bruk i mer enn et halvt århundre i beregningsintensive områder. som numerisk værprediksjon , endelig elementanalyse , beregningsvæskedynamikk (CFD), beregningsfysikk og beregningsbasert kjemi . Det er et av de mest populære språkene innen høyytelses databehandling og er språket som brukes for programmer som evaluerer ytelsen ( benchmark ) og rangeringen av de raskeste superdatamaskinene i verden . [ 4 ]

FORTRAN omfatter en rekke versjoner, som hver utviklet seg for å legge til utvidelser til språket mens de vanligvis beholdt kompatibiliteten med tidligere versjoner. Påfølgende versjoner har lagt til støtte for tegnbasert databehandling (FORTRAN 77), array -programmering , modulær programmering og objektorientert programmering (Fortran 90/95), og generisk programmering (Fortran 2003).

Historikk

På slutten av 1953 sendte John W. Backus et forslag til sine overordnede i IBM om å utvikle et mer praktisk alternativ til assemblerspråk for programmering av IBM 704 stormaskin . Backus' historiske FORTRAN-team besto av programmererne Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt og David Sayre. [ 5 ]

I midten av 1954 ble et utkast til spesifikasjon for IBM Mathematical Formula Translating System fullført . Den første FORTRAN-manualen dukket opp i oktober 1956 , fordi kundene var motvillige til å bruke et programmeringsspråk på høyt nivå med mindre kompilatoren kunne generere kode hvis ytelse var sammenlignbar med den til håndskrevet assembly-språkkode.

Mens samfunnet var skeptisk til dette nye språket, reduserte det antallet programmeringsutsagn som var nødvendig for å betjene en maskin med 20 ganger, og fikk raskt aksept. Under et intervju fra 1979 med Think, IBMs ansattemagasin, sa skaperen John Backus: "Mye av arbeidet mitt kom fra å være lat. Jeg likte ikke å skrive programmer, og så da jeg jobbet med IBM 701-skriveprogrammene for å regnemissiler baner begynte jeg å jobbe med et programmeringssystem for å gjøre det lettere å skrive programmer. [ 6 ]

Språket ble bredt tatt i bruk av forskere for å skrive numerisk intensive programmer, noe som oppmuntret kompilatorforfattere til å produsere kompilatorer som kunne generere raskere og mer effektiv kode. Inkluderingen av en datatype og kompleks tallaritmetikk i språket utvidet spekteret av applikasjoner som språket var spesielt egnet for og gjorde FORTRAN spesielt godt egnet for tekniske applikasjoner som elektroteknikk.

I 1960 var versjoner av FORTRAN tilgjengelig for IBM 709 , 650 , 1620 og 7090 datamaskiner . Den økende populariteten til FORTRAN stimulerte betydelig konkurrerende datamaskinprodusenter til å tilby FORTRAN-kompilatorer for maskinene sine, slik at det i 1963 eksisterte mer enn 40 FORTRAN-kompilatorer. Av disse grunner regnes FORTRAN som det første mye brukte programmeringsspråket som støttes på tvers av en rekke dataarkitekturer.

Utviklingen av FORTRAN gikk parallelt med den tidlige utviklingen av kompilatorteknologi. Faktisk ble mange fremskritt innen kompilatorteori og design motivert spesifikt av behovet for å generere effektiv kode for FORTRAN-programmer.

Versjoner

Noen andre påfølgende versjoner var:

Hovedtrekk

Språket ble designet med tanke på at programmer skulle skrives på hullkort med 80 kolonner. Dermed måtte for eksempel linjene nummereres og den eneste mulige endringen i rekkefølgen for utførelse ble produsert med goto -instruksen . Disse funksjonene har utviklet seg fra versjon til versjon. De nåværende inneholder underprogrammer, rekursjon og en rekke kontrollstrukturer .

Fordeler og ulemper med syntaksen

Siden det var et første forsøk på å lage et programmeringsspråk på høyt nivå, har det en syntaks som anses som arkaisk av mange programmerere som lærer mer moderne språk. Det er vanskelig å skrive en "for"-løkke, og feil ved å skrive et enkelt tegn kan føre til kjøretidsfeil i stedet for kompilatorfeil, hvis de vanligste konstruksjonene ikke brukes. Noen tidlige versjoner hadde ikke funksjoner som anses som veldig nyttige, for eksempel dynamisk minnetildeling.

Det skal bemerkes at Fortran-syntaksen var ment for bruk i numerisk og vitenskapelig arbeid. Mange av dens mangler har blitt tatt opp i nyere språkrevisjoner. Fortran 95 har for eksempel mye kortere kommandoer for å utføre matrisematematikk, og den har typer. Dette forbedrer ikke bare lesbarheten til programmet betydelig, men gir også nyttig informasjon til kompilatoren.

Av disse grunnene brukes Fortran knapt utenfor vitenskapelige felt og numerisk analyse, men det er fortsatt det foretrukne språket for utvikling av høyytelses numeriske databehandlingsapplikasjoner.

Spesifikasjoner

Det er to standardiserte versjoner av språket.

Nedenfor er kildekoden på Fortran-språket til et program som gjør det mulig å utføre en lineær tilpasning eller regresjon av en serie data:

LINEÆR REGRESJON . FORTRANS APPLIKASJONSDIMENSJON TID ( 1000 ), PROD ( 1000 ) ÅPEN ( 1 , FIL = 'HISTORY.txt ' ) I = 0 10 READ ( 1 , * , END = 80 ) T , P I = ​​​​I + 1 GANG ( . l .) = T PROD ( I ) = P TIL 10 80 NDATA = JEG RINGER ADJULIN ( TID , PROD , NDATA , A , B ) SKRIV ( * , 90 ) A , B 90 FORMAT ( 'LIGNING ER:Y =' , F10 .2 , ' +' , F10 .2 , ' X ' ) 20 FORMAT ( 20 F10 . 0 ) SLUTT SUMRUTINE AJULIN ( X , Y , N , A , B ) DIMENSJON X ( 1 ), Y ( 1 ) SUMX = 0. SUMY = 0. SUMX2 = 0. SUMY2 = 0 SUMXY = 0 GJØR 20 I = 1 , N SUMX = SUMX + X (. l .) SUMY = SUMY + Y (. l .) SUMX2 = SUMX2 + ( X ( I ) * X (. l .)) SUMY2 = SUMY2 + Y ( I ) ** 2 SUMXY = SUMXY + ( X ( I ) * Y ( I )) 20 FORTSETT PROD = SUMX * SUMY B = ( SUMXY - PROD / N ) / ( SUMX2 - SUMX ** 2 / N ) A = ( SUMY / N - B * SUMX / N ) ) RETUR SLUTT

I utgangspunktet, i programmet leses et visst antall ordnede par fra en ASCII -fil , en rutine kalles som beregner den tilsvarende tilpasningslinjen, ved å bruke metoden for minste kvadrater , og returnerer deretter med koeffisientene eller parameterne til den aktuelle linjen. .

Referanser

  1. Navn på versjoner før FORTRAN 77 er konvensjonelt skrevet med alle store bokstaver (FORTRAN 77 var versjonen der bruken av små bokstaver i nøkkelord var strengt tatt ikke-standard). Store bokstaver har blitt droppet for å referere til nyere versjoner som begynner med Fortran 90. De offisielle språkstandardene refererer nå til språket som "Fortran." Fordi bruken av store bokstaver (eller mangelen på det) av ordet FORTRAN aldri var 100 % konsistent i faktisk bruk, og fordi mange har en lidenskapelig tro på saken, tar denne artikkelen i bruk konvensjonen om å bruke alle bokstaver i stedet for å prøve å være normativ. FORTRAN med å referere til versjoner av FORTRAN til FORTRAN 77 og tittelkapslene Fortran i å referere til versjoner av Fortran fra Fortran 90 og fremover. Denne konvensjonen gjenspeiles i kapitaliseringen av FORTRAN i standardene ANSI X3.9-1966 (FORTRAN 66) og ANSI X3.9-1978 (FORTRAN 77) og tittelbetegnelsene Fortran i ANSI X3.198-1992 (Fortran 90) , ISO/IEC 1539-1:1997 (Fortran 95) og ISO/IEC 1539-1:2004 (Fortran 2003).
  2. Siden FORTRAN 77, som introduserte CHARACTERdatatypen.
  3. Siden FORTRAN II (1958).
  4. http://www.top500.org/project/linpack
  5. http://www.softwarepreservation.org/projects/FORTRAN/index.html#By_FORTRAN_project_members
  6. Fortran-skaperen John Backus dør - Gadgets - MSNBC.com

Eksterne lenker

Programmeringsressurser