Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Pereiti prie turinio

Fortran

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
   Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius.
Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais.
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[reikalingas šaltinis] 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.

„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 [1].

Pirmiausia kurta matematiniams apskaičiavimams, FORTRAN turi 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

[redaguoti | redaguoti vikitekstą]

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.

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.[2]

Naujo FORTRAN dialekto pavyzdys

[redaguoti | redaguoti vikitekstą]
 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š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
  1. Wetherell, Etudes for Programmers, 1978
  2. „Interstellar 8-Track: How Voyager's Vintage Tech Keeps Running“. WIRED. Nuoroda tikrinta 2018-09-17.