Fortran

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką
Fortran sakinys, užkoduotas perfokortoje. Sakinys taip pat užrašytas ranka perfokortos viršuje

FORTRAN (iš angl. Formula Translator) – viena pirmųjų algoritminių kalbų, savo istoriją skaičiuojanti nuo 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, todėl ją lengva išmokti; o kruopščiai parengti jos kompiliatoriai – vertėjai į mašinos instrukcijų kalbą – garantavo itin aukštą kalbos efektyvumą, pasižymėjo dideliu panašumu asemblerio kodams bei suprantamumu ir aiškumu žmogui.

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

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

Anais laikais kiekvienam tikram programuotojui buvo aišku, jog 6 – tai standartinis terminalo išvedimo kanalo numeris (skaityti reikdavo iš penkto kanalo), 7 nurodo į septynetu pažymėtą formato eilutę (kuri nėra vykdoma ir programoje gali būti bet kur) o 19H – kad Sveikas, pasauli! ir du tarpai aplink užima lygiai devyniolika simbolių. Vėlesnės FORTRAN versijos, tiesa, simbolių skaičiuoti nebereikalavo, tačiau tuo užsiimantys buvo giriami už gerą programavimo stilių (Wetherell, Etudes for Programmers, 1978). Tačiau FORTRAN buvo puikiai parengta įvairiems matematiniams apskaičiavimams (tarkim, buvo kompleksinių skaičių tipas). Su EQUIVALENCE buvo galima tą pačią lentelę pasiekti tiek kai vienmatį, tiek ir kaip dvimatį ar daugiamatį masyvą, o su ENTRY (nors ne visos versijos palaikė) – „įvažiuoti“ tiesiai į kviečiamos funkcijos vidurį. Kadangi šia kalba parašyta labai daug taikomosios matematikos programinės įrangos, net ir nenaudojant ją verta mokėti skaityti ir dabar.

Dabartinė padėtis[taisyti | redaguoti kodą]

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ą, abstrakčius duomenų tipus, išimtis ir net objektinio programavimo galimybes. Yra sukurti specializuoti lygiagrečiajam programavimui skirti FORTRAN dialektai.

Naujo FORTRAN dialekto pavyzdys[taisyti | redaguoti kodą]

program cilindras
!!! Programa 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šį.'
    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=='T') exit yn_loop
       if (yn=='n' .or. yn=='N' .or. yn==' ') exit ciklas
    end do taip_ne_ciklas
 end do ciklas
end program cilindras

Nuorodos[taisyti | redaguoti kodą]