Fortran

**FORTRAN** (iš 'For**mula **Tran**slator'') – viena pirmųjų [[programavimo kalba|algoritminių kalbų]], sukurta [[1957]] m. Ją sukūrė amerikiečių firmos [[IBM]] tyrinėtojų grupė, kuriai vadovavo [[Džonas Bekus]] (''John W. Backus''). Kalba išsiskyrė tuo, kad matematinės formulės joje labai panašios į formules matematiniame tekste.

„Sveikas pasauli“ **FORTRAN** atrodytų maždaug taip:

  C       ''Tai pirmoji programavimo kalba,'' 
  C       ''kurioje buvo galimi komentarai.''
          **WRITE** (6,7000)
    7000  **FORMAT**(19H Sveikas, pasauli!)      
          **STOP**
          **END**

Pirmasis WRITE operatoriaus parametras (6) yra standartinis terminalo išvedimo kanalo numeris (skaityti reikdavo iš penkto kanalo). Antrasis parametras, 7000, nurodo į žemiau esančią, tuo pačiu skaičiumi pažymėtą formato eilutę (kuri nėra vykdoma ir programoje gali būti bet kur). 19H reiškia jog ''Sveikas, pasauli!'' ir du tarpai aplink užima lygiai devyniolika simbolių. Vėlesnės **FORTRAN** versijos simbolių skaičiuoti nebereikalavo, tačiau tai buvo laikoma geru programavimo stiliumi . 

Pirmiausia kurta matematiniams apskaičiavimams, **FORTRAN** turi [[Kompleksiniai skaičiai|kompleksinių skaičių]] tipą, kurio neturi daugelis naujesnių programavimo kalbų. Ankstyvose versijose buvo daug vėliau neįprastų konstrukcijų. Pavyzdžiui, su EQUIVALENCE buvo galima tą pačią lentelę pasiekti tiek kai vienmatį, tiek ir kaip dvimatį ar daugiamatį masyvą, su ENTRY - perduoti valdymą į funkcijos kodo vietą bet kur (nebūtinai į funkcijos pradžią). Pirmojoje FORTRAN versijoje procedūrų bei funkcijų nebuvo, jos pirmąkart pasiūlytos FORTRAN II.

== Dabartinė padėtis ==
FORTRAN anaiptol nėra pasenusi ir nenaudojama kalba. Ji pakankamai gerai tinka įvairiems sudėtingiems matematiniams apskaičiavimams ir šioje srityje tebėra plačiai naudojama. Naujausios versijos (FORTRAN 2003 ir pan) turi dinaminį atminties paskirstymą, [[abstraktus duomenų tipas|abstrakčius duomenų tipus]], išimtis ir net [[objektinis programavimas|objektinio programavimo]] galimybes. Yra sukurti specializuoti [[Lygiagretusis programavimas|lygiagrečiajam programavimui]] skirti FORTRAN dialektai.

[[Voyager 1]] bei [[Voyager 2]] programinė įranga iš pradžių buvo parašyta FORTRAN 5, vėliau perrašyta FORTRAN 77. Dalis jos dabar perrašyta C.

== Naujo FORTRAN dialekto pavyzdys ==
 
  **program** cilindras
 ''!!! Programa [[Cilindras|cilindro]] plotui skaičiuoti''
  **implicit** none ''! Šis sakinys nurodo, jog visi kintamieji turi būti deklaruoti''
  **integer** ierr
  **character** yn
  **real** spindulys,aukstis,plotas
  **real**, **parameter** :: pi = 3.14159
  ciklas: **do**
     ''! Klausk vartotojo apie cilindro matmenis''
     **write** (*,*) 'Įveskite pagrindo spindulį ir cilindro aukštį.'
     **read** (*,*,iostat=ierr) spindulys,aukstis
     ''! Jei duomenų perskaityti nepavyko, pakartoti ciklą.''
     **if** (ierr /= 0) then
        **write**(*,*) 'Klaidingi duomenys.'
        **cycle** ciklas
     **end if**
     ''! Skaičiuojame plotą. ** žymi kėlimo laipsniu operaciją.''
     plotas = 2*pi*(spindulys**2 + spindulys*aukstis)
     ''! Spausdiname cilindro matmenis (spindulys, aukstis)''
     ''! ir apskaičiuotą plotą (plotas)''
     **write** (*,'(1x,a7,f6.2,5x,a7,f6.2,5x,a5,f6.2)') &
          'spindulys=',spindulys,'aukštis=',aukstis,'plotas=',plotas
     yn = ' '
     taip_ne_ciklas: **do**
        **write**(*,*) 'Skaičiuoti kitam cilindrui? t[n]'
        **read**(*,'(a1)') yn
        **if** (yn=='y' **.or.** yn=='Y') **exit** yn_loop
        **if** (yn=='n' **.or.** yn=='N' .or. yn==' ') **exit** ciklas
     **end do** taip_ne_ciklas
  **end do** ciklas
 **end program''' cilindras

## Išnašos

## Nuorodos
* Fortran istorija anglų kalba