Fortran — programavimo kalba: apibrėžimas, istorija ir panaudojimas

Fortran – klasikinė programavimo kalba: istorija, vystymasis ir naudojimas moksliniuose skaičiavimuose bei aukšto našumo programose. Sužinokite apie versijas ir praktinį pritaikymą.

Autorius: Leandro Alegsa

"Fortran" yra sena, bet vis dar plačiai naudojama programavimo kalba, sukurta moksliniams ir inžineriniams skaičiavimams. Pirmą kartą ji pasirodė šeštajame dešimtmetyje ir išsiskiria procedūrine paradigma bei savybėmis, palengvinančiomis intensyvius skaičiavimus ir skaitinę analizę. Fortran orientuotas į skaičiavimo efektyvumą, didelės apimties masyvų operacijas ir optimizuojamą vykdomąjį kodą, todėl jį iki šiol renkasi daug mokslinių ir pramoninių projektų.

Trumpa istorija

Pirmąjį FORTRAN kompiliatorių 1954-57 m. sukūrė IBM komanda, vadovaujama Johno W. Backuso. Tai buvo pirmasis praktiškas aukšto lygio kalbos kompiliatorius, gebėjęs generuoti efektyvų mašininį kodą. Komandos nariai buvo susirūpinę, kad aukšto lygio kalba nebus priimta, jei generuotas kodas bus lėtesnis už asemblerio kalba parašytas programas, todėl daug dėmesio skyrė kompiliatoriaus optimizavimui.

Fortran greitai tapo dominuojančia kalba mokslinei skaičiavimų bendruomenei, o tai skatino daugelį įmonių ir tyrėjų kurti tobulus kompiliatorius ir optimizacijos metodus. Didelę reikšmę turėjo ir kompilatorių teorijos bei projektavimo tyrimai, skirti generuoti greitą ir patikimą Fortrano kodą.

Kalbos vystymasis ir pagrindinės versijos

Per dešimtmečius Fortran evoliucionavo, išlaikydamas našumo prioritetą, bet palaipsniui įtraukdamas modernesnes programavimo konstrukcijas:

  • FORTRAN IV / FORTRAN 66 – ankstyvos, plačiai naudotos versijos.
  • FORTRAN 77 – įvedė struktūrinio programavimo elementus, IF-THEN-ELSE konstrukcijas, geresnę teksto išvedimą ir komentarus.
  • FORTRAN 90 – didelis žingsnis: pridėta rekursija, moduliai, dinaminiai masyvai, vykdomosios matricos/massyvų operacijos, naujas laisvo formato šaltinio kodas (.f90) ir kitos aukšto lygio konstrukcijos.
  • Fortran 95 – nedideli patobulinimai, taisyklės ir standartizacija.
  • Vėlesni standartai (po 1997 m.) įvedė daugybę svarbių galimybių, pvz., objektinio programavimo elementus, geresnę C tarpusavio sąveiką ir lygiagretumo palaikymą: Fortran 2003, Fortran 2008 (pvz., coarrays) ir naujausi patobulinimai iki Fortran 2018.

Kalbos savybės

Iš pradžių Fortran rėmėsi tiksliu pradinio kodo formatavimu (vadinama „fixed form“), gausiai naudojo teiginių numerius ir „pereiti į“ (goto) teiginius. Su naujesnėmis versijomis pereita prie laisvo formato ir struktūrizuoto programavimo. Svarbiausios savybės:

  • Masyvų ir vektorizuotų operacijų palaikymas – paprasta rašyti operacijas su dideliais duomenų rinkiniais.
  • Įmontuotos matematinės funkcijos ir BLAS/LAPACK bibliotekų integracija – efektyvūs skaičiavimai linijinės algebros uždaviniais.
  • Moduliai ir ryšiai (modules) – duomenų ir procedūrų kapsuliacija (nuo Fortran 90).
  • Deriniai tipai (derived types) ir objektinio programavimo palaikymas (vėlesniuose standartuose).
  • Lygiagretumo priemonės – coarrays (Fortran 2008) ir kitos priemonės didelio našumo skaičiavimams.
  • ISO_C_BINDING – standartinė tarpusavio sąveika su C, palengvinanti bibliotekų ir modulų integraciją.

Standartai ir kompiliatoriai

Fortran kalbos standartizacija leido palaipsniui papildyti kalbą naujomis savybėmis be prarastumo su esamomis programomis. Nors pradinis tekstas mini, kad naujausias oficialus standartas buvo paskelbtas 1997 m. ir žinomas kaip Fortran 95, nuo tada pasirodė naujesni standartai (2003, 2008, 2018), kurie pridėjo objektinio programavimo, tarpusavio sąveikos ir lygiagretumo funkcijas.

Pagrindiniai Fortrano kompiliatorių tiekėjai ir įgyvendinimai: GNU Fortran (gfortran), Intel Fortran (ifort/ifx), NAG Fortran, PGI/NVIDIA Fortran ir kiti. Šie kompiliatoriai dažnai susikoncentruoja į aukšto našumo optimizacijas, vektorizaciją ir modernių procesorių / GPU palaikymą.

Kur Fortran naudojamas šiandien

Fortran plačiai taikoma sričių, kuriose reikia didelio skaičiavimo našumo ir patikimų skaitinių metodų:

  • Mokslo skaičiavimai: fizika, cheminė inžinerija, klimato modeliavimas, astrofizika.
  • Inžinerija: skaitinė dinamika, skysčių dinamika (CFD), struktūrinė analizė, FEM sprendiniai.
  • Didelio našumo skaičiavimai (HPC): superkompiuterių programos, paralelinės simuliacijos.
  • Bibliotekos: BLAS, LAPACK, įvairūs optimizuoti matematinių funkcijų rinkiniai ir specialistinės bibliotekos.

Trumpas pavyzdys

Tipinis modernės Fortrano programos fragmentas, demonstruojantis modulį, implicit none bei vektorizuotas masyvų operacijas:

module math_mod   implicit none contains   function dot_product(a, b) result(res)     real, intent(in) :: a(:), b(:)     real :: res     res = sum(a * b)   end function end module  program test   use math_mod   implicit none   real :: x(3) = [1.0, 2.0, 3.0]   real :: y(3) = [4.0, 5.0, 6.0]   print *, 'Dot product =', dot_product(x, y) end program test

Išvados

Fortran — tai kalba, turinti ilgą istoriją ir daug pasiekimų skaitinių metodų srityje. Nors jos sintaksė pradiniuose etapuose buvo ribota, per kelias dešimtis metų kalba įgijo modernesnes konstrukcijas, lygiagrečias galimybes ir geresnę modulinių programų struktūrą. Dėl optimizuotų kompiliatorių ir didelės bibliotekų ekosistemos Fortran išlieka stipriu pasirinkimu moksliniuose ir inžineriniuose projektuose, kuriems būtinas maksimalus skaičiavimo našumas.

Vardo reikšmė ir rašyba

Pavadinimas "Fortran" reiškia "Formulės vertimas". Anksčiau ši kalba buvo vadinama FORTRAN (senesni jos variantai tebėra). Nuo "Fortran 90" atsisakyta rašyti didžiąja raide. Paskelbtuose oficialiuose standartuose vartojama "Fortran".

Standartai

Toliau pateikti du standartai skirti dabartinėms "Fortran" realizacijoms.

  • ANSI X3.198-1992 (R1997). Pavadinimas: Programavimo kalba "Fortran" Išplėsta. Neoficialiai žinoma kaip "Fortran 90". Šį standartą paskelbė ANSI ir jis niekada netapo tarptautiniu standartu (ISO).
  • ISO/IEC 1539-1:1997. Pavadinimas: Programavimo kalbos - Fortran - 1 dalis. Neformaliai žinoma kaip Fortran 95. Šį standartą sudaro dar 2 dalys. ANSI oficialiai patvirtino 1 dalį.


Ieškoti
AlegsaOnline.com - 2020 / 2025 - License CC3