FORTRAN

Kohteesta Hikipedia
Loikkaa: valikkoon, hakuun

”En tiedä, millainen ohjelmointikieli vuonna 2000 on käytössä, mutta sen nimi on FORTRAN.”

~C.A.R. Hoare

”Tosin Microsoft™ Basic on merkittävästi parempi myös vuoden 2000 jälkeen.”

~William H. Gates Ⅲ

FORTRAN (engl: FORbitten TRANSistors) on amerikkalaisen John W. Backuksen kehittämä ohjelmointikieli.

Historia[muokkaa]

John W. Backus työskenteli joskus 1950-60-luvulla IBM:llä insinöörinä kehittäen IBM:n tietokoneita yhä paremmiksi. Iltaisin töiden jälkeen hänellä ja hänen tiimillään [1] oli tapana jäädä pelaamaa IBM:n sen ajan parhaimmalla tietokoneella, IBM 704:llä [2] pienen yrittämisen jälkeen jopa insinöörikin tajuaa, että tuolle tietokoneelle ei ollutkaan olemassa pelejä saati sitten työkaluja, joilla pelejä olisi voinut tehdä! [3]. Joten JWB tiimeineen ryhtyi töihin asian korjaamiseksi.

Neljän vuoden työn ja IBM:n tapaan liian monen muistion kirjoittamisen jälkeen he saattoivat viimein esitellä työnsä tuloksen: Maailman ensimmäinen tietokonepeli!

Maailman ensimmäinen tietokonepeli[muokkaa]

Vihdoinkin JWB:llä oli esitellä jotain tuloksia työstä, josta hän oli saanut palkkaa[4]: Maailman ensimmäinen tietokonepeli ja sivutyönä syntynyt ensimmäinen korkeantason ohjelmointikieli, jolla peliohjelman saattoi kääntää tietokoneen ymmärtämään muotoon. Alkuperäisen ohjelman listaus oli tällainen[5]

C     LUVUNARVAUSPELI
      ILUKU=42
      ILKM=0
60    FORMAT(A)
70    FORMAT(I3)
10    WRITE(*,60) 'ANNA LUKU 1...100'
      READ(*,70) IARVAUS
      ILKM=ILKM+1
      IF(ILUKU-IARVAUS) 20,40,30
30    WRITE(*,*) 'LOL! LIIAN PIENI ARVAUS'
      GOTO 10
20    WRITE(*,*) 'WTF! LIIAN SUURI ARVAUS'
      GOTO 10
50    FORMAT(A,I2,A)
40    WRITE(*,50) 'OMG! OIKEIN! TARVITSIT ',ILKM,' ARVAUSTA' 
      STOP
      END

IBM:n isot päälliköt ihastuivat välittömästi tähän peliin. Ne harvat pikkupomot, jotka edes ymmärsivät mistä asiassa on kyse ihastuivat FORTRANin uskomattomaan selkeyteen[6]

FORTRANin kielioppi[muokkaa]

FORTRANin kielioppia selvittää parhaiten klassinen "Hello World" esimerkki:

C     HELLO WORLD
      PROGRAM HELLO WORLD
10    FORMAT(A)
      WRITE(*,10) 'HELLO WORLD'
C     THE
      END

Tästä ja yläpuolella olevasta esimerkistä selviää FORTRANin tehokkuus myös tulevaisuuden ohjelmointikielenä:

  • Rivit tulee numeroida
    • Kaikkia rivejä ei kuitenkaan ole pakko numeroida
    • Vaikka sitten numeroisitkin rivin, ei niiden ole pakko olla numerojärjestyksessä
  • KAIKKI TULEE KIRJOITTAA ISOILLA KIRJAIMILLA
  • Tässä ohjelmointikielessä ei ole varattuja sanoja
  • Väli lyöntejä voit laittaa minne haluat, vai k ka s a no jen vä liin
    • Paitsi tietenkin ensimmäiseen viiteen sarakkeeseen
  • FORTRANissa on täydellinen tuki goto rakenteelle[7]

Käyttökohteet[muokkaa]

Ne harvat IBM:n pikkupomot, jotka ymmärsivät tämän uuden keksinnön mullistavuuden. Tajusivat heti, että tämä ohjelmointikieli on omiaan raskaaseen tieteelliseen laskentaan.

Seuraava neliöjuuren laskentaesimerkki osoittaa FORTRANin käyttökelpoisuuden raskaassa tieteellisessä laskennassa:[8][9]

C     FORTRAN-OHJELMA NELIOJUUREN LASKEMISEKSI
C     OHJELMOINUT 31.3.70 P.PORRAS
      PROGRAM NELIOJUURI
   6  READ(*,2) A
   2  FORMAT(F10.0)
   7  X0=1.0
   5  X1=0.5*(X0+A/X0)
   8  IF(ABS((X1-X0)/X1)-0.0001) 3,4,4
   4  X0=X1
      GO TO 5
   3  WRITE(*,1) A,X1
   1  FORMAT('JUURRERRAVA=',F12.5,4X,
     1 'NELIOJUURI=',F12.5)
      END

Ohjelman ajon lopputulos on Linux-käyttöjärjestelmässä seuraava:[10]

$ gfortran juuri.f 
$ ./a.out 
2
JUURRERRAVA=     2.00000    NELIOJUURI=     1.41421

Tulevaisuus[muokkaa]

Aiheesta muualla[muokkaa]

Viitteet[muokkaa]

  1. Sanaa "tiimi" ei tosin käytetty silloin
  2. http://mikropc.net/nettilehti/pdf/pc0410200118.pdf
  3. Huomautettakoon lukijalle, että Pleikkaria ei siihen aikaan voinut ostaa kaupasta
  4. . Itse asiassa he työskentelivät salaa, mutta muistivat kirjata työtunnit ylös. Lähde:[1]
  5. Tekstit ovat luonnollisesti käännetty englannista suomeksi, koska tämä on suomenkielinen Hikipedia
  6. Kuten näemme seuraavassa kappaleessa
  7. Monesta nykyaikaisesta ohjelmointikielestä, kuten esim. javasta se puuttuu
  8. Kirja: Tiedon Portaat osa Ⅷ, sivu 546 , Kirjoittanut Tekn. tri R. Pekka Malinen, Werner Söderström Osakeyhtiö, 1970
  9. Kyllä! ohjelmakoodi on 41 vuotta vanhaa ja se toimii edelleen. Luuletko, että Microsoft pystyy ikinä samaan?
  10. Artikkelin kirjoittaja on oikeasti testannut esittämiensä ohjelmointiesimerkkien toiminnan käyttämällä GNU FORTAN kääntäjää