Kako postaviti pametne telefone i računala. Informativni portal

Programski jezik Fortran. hodajući mrtvaci

Ministarstvo obrazovanja i znanosti Ruske Federacije

Uralsko federalno sveučilište

nazvan po prvom predsjedniku Rusije

OSNOVE PROGRAMIRANJA

NA FORTRANSKOM JEZIKU

Vodič

Jekaterinburg

Uvod. 3

Referenca za povijest. 5

Struktura programa .. 8

Razlike između Fortrana 90 i Fortrana 77.11

Pristup računalnim resursima. 15

Izvođenje zadataka na klasteru. 17

Prepišite tekstove programa na poslužitelj. 17

Kompilacija programa. 17

Pokretanje programa na račun. devetnaest

Vrste podataka. 22

Cjelobrojna konstanta. 22

Prava konstanta. 23

Realna konstanta dvostruke preciznosti. 23

Kompleksna konstanta. 23

Kompleksna konstanta dvostruke preciznosti. 24

Booleova konstanta. 24

Tekstualna konstanta. 24

Operatori opisa tipa podataka. 26

INTEGER cjelobrojnog tipa. 26

REALNA i DVOSTRUKA PRECIZNOST realnog tipa. 27

SLOŽENI i DVOSTRUKI KOMPLEKSNI složeni tip. 28

CHARACTER je tip znaka. 29

LOGIČNO boolean tip. 29

DIMENZIJA nizova. trideset

Atribut PARAMETER .. 32

Različite vrste ugrađenih podataka. 35

Izrazi, operacije i zadaci. 36

Aritmetički izrazi. 36

Izrazi stava. 37

Booleovski izrazi. 38

Pravila vrednovanja izraza. 38

Ulazni/izlazni operatori. 39

Operator unosa PODATAKA .. 39

Ulazni izraz READ .. 40

Izlazni izraz WRITE. 41

Operator zaključivanja uključen Ispiši ekran. 42

Izjava o specifikaciji ulaznog/izlaznog formata (FORMAT) 43

Specifikacije X, T. 43

Specifikator I 44

Separatori. 45

Specifikacija F. 46

Ponavljači. 49

Specifikacija E. 50

Specifikacija G .. 51

Deskriptori podataka. 52

Operatori uvjeta. 53

Logički operator uvjeta. 53

Aritmetički uvjetni operator. 57

ODABIR SLUČAJ. 60

Operatori petlje. 62

Operator petlje DO .. 62

Operator petlje DO WHILE. 64

Stop operater STOP. 65

Izlazni izraz iz petlje EXIT. 66

Prijelazni operateri. 67

GOTO .. ​​67 operator skoka riječi sabirnice

Izračunati operator grane GOTO .. ​​67

Operator uvjetne grane IF ... GOTO .. ​​68

Rad s nizovima. 69

Unos nizova. 69

Prikaz nizova. 71

Obrada nizova. 73

Potprogrami .. 76

Operator funkcije. 78

Funkcija potprograma FUNKCIJA .. 81

Postupak potprograma PODRUTINA. 83

Radite s vanjske datoteke. 85

Operator otvaranja datoteke OPEN .. 85

CLOSE izjava za zatvaranje datoteke. 86

Primjeri rada s datotekama. 86

Književnost. 89

Uvod

Karakteristična značajka paralelnih računala je sposobnost istodobna upotreba za obradu informacija veliki broj procesori. Primjena višeprocesora računalni sustavi(MVS) postavlja dva zadatka za konstruiranje paralelnih algoritama: paralelizaciju postojećih sekvencijalni algoritmi te stvaranje novih algoritama s fokusom na paralelne računalne sustave.

Najčešća tehnologija programiranja za paralelna računala s distribuiranom memorijom trenutno je MPI. Glavni način interakcije paralelnih procesa u takvim sustavima je međusobno prosljeđivanje poruka. To se odražava u nazivu ove tehnologije - Message Passing Interface. MPI standard popravlja sučelje koje se mora pridržavati i programskog sustava na svakoj računskoj platformi i korisnika prilikom kreiranja svojih programa. MPI komunikacijska knjižnica postala je općeprihvaćeni standard u paralelnom programiranju koristeći mehanizam za prosljeđivanje poruka.

MPI program je skup neovisnih procesa od kojih svaki izvodi svoj vlastiti vlastiti program(ne nužno isto) napisano u C ili FORTRAN-u. U FORTRANU, većina MPI procedura su potprogrami (koje se nazivaju CALL izjava), a kod pogreške se vraća putem dodatnog posljednji parametar postupci. Nekoliko postupaka, dizajniranih kao funkcije, ne vraćaju kod pogreške. U imenima potprograma i imenovanih konstanti nisu potrebna stroga velika i mala slova. Nizovi su indeksirani od 1. MPI objekti, koji su strukture u C, predstavljeni su u FORTRAN-u kao nizovi cjelobrojnog tipa.

IMM je programiran na FORTRANU. Glavna poteškoća u korištenju za velike zadatke je koordinacija interakcije dijelova velikog zadatka. Fortran 90 uključuje mehanizme za interakciju objekata u skladu s tehnologijom objektno orijentiranog programiranja, koji olakšavaju timski rad na veliki projekt... To su moduli za dizajn knjižnica, struktura i izvedenih tipova podataka za organiziranje složenih podataka, radi se o dinamičkoj dodjeli memorije, kao i niz mehanizama za obradu nizova, uključujući formiranje različitih kriški (odjeljaka). Mogućnost kombiniranja u jednoj obitelji (u rodu) standardnih postupaka obrade koji se razlikuju po vrsti svojih argumenata može se koristan alat u raznim zadacima. Vrste (obitelji) tipova podataka omogućuju vam da jednostavno prilagodite implementaciju tipa uzimajući u obzir svojstva hardvera (na primjer, tip INTEGER može se deklarirati dugim ili kratkim putem kontrole prikaza KIND). Neka stilska pravila mogu pomoći u dizajnu, na primjer, deklariranje ulaznih, izlaznih i promjenjivih parametara procedure može vam pomoći da pronađete pogreške interoperabilnosti. Pravila za pisanje svojstava podataka, komentara i drugih elemenata olakšavaju čitanje napisanih programa, što ubrzava traženje grešaka.

Referenca za povijest

1954. - IBM, prevoditelj za prvi jezik Fortran.

1958. - FortranII.

1962. - FortranIV.

1966. - Fortran 66.

1978. - Fortran 77.

Nazvana je modifikacija jezika Fortran, koja se pojavila 1958. godine FortranII i sadržavao je koncept potprograma i zajedničkih varijabli za pružanje komunikacije između segmenata.

Do 1962. godine pojava jezika poznatog kao Fortran IV... Godine 1966. završen je razvoj američkog standarda za jezik ANSI (American National Standards Institute), jezik je tzv. Fortran 66... Godine 1978. razvijena je druga verzija ANSI standarda – jezik Fortran 77 uključujući elemente strukturirano programiranje npr. strukturirani IF, tipovi znakova.

Treća verzija ANSI standarda je Fortran 90, realiziran 1991. godine. Fortran 90 je razvoj jezika Fortran 77 dakle program napisan Fortran 77, može se sastaviti i pokrenuti kao program u Fortran 90... Standard Fortran 90 Standard uvodi mnoge nove mogućnosti za operacije na nizovima, nove metode za određivanje preciznosti, slobodan format izvorni kod, rekurzija, dinamički nizovi, itd.

Programi za trenutni jezik standard Fortran 77 mogu se uspješno sastaviti od strane prevoditelja Fortran 90 bez ikakvih promjena. Međutim, struktura programa na jeziku Fortran 90 može se značajno razlikovati od strukture ekvivalentnog programa na Fortran 77... Programer se mora paziti miješanja dvaju stilova.

Jednako tako, prevodilac s Fortran 90 zahtijeva davanje objašnjenja za izvješćivanje o nekim neusklađenim (nepodudarnim) kodovima, odnosno korištenje operatora ili varijabli koje su dopuštene izvan skupa pravila izvan standarda.

Fortran zauzima ponosno mjesto među moderni jezici programiranje. To je jedan od prvih programskih jezika visoka razina i od svog osnutka dizajniran je za rješavanje složenih računskih problema. Fortran je u početku bio dočekan sa skepticizmom među primijenjenim programerima, jer se vjerovalo da će cijena pogodnosti programiranja u jeziku visoke razine imati značajan gubitak brzine računanja. Kada je riječ o modeliranju složenih procesa ili obradi velikih količina informacija, brzina računanja je odlučujući čimbenik u određivanju izbora jezika, računalne platforme i tehnologije programiranja.

Među znanstvenicima, na primjer, postoji izreka da bilo koji matematički problem već ima rješenje u FORTRANU, i, doista, među tisućama Fortranovih paketa možete pronaći i paket za množenje matrica, i paket za rješavanje složenih integralnih jednadžbi i mnoge, mnoge druge. Niz takvih paketa nastao je desetljećima i popularan u znanstvenoj zajednici do danas, na primjer - IMSL ( Engleski).

Većina ovih knjižnica zapravo je vlasništvo čovječanstva: dostupne su u izvornom kodu, dobro dokumentirane, otklonjene pogreške i vrlo učinkovite. Stoga ih je skupo mijenjati, a kamoli prepisivati ​​u druge programske jezike, unatoč tome što se redovito pokušavaju automatski pretvoriti FORTRAN kod u moderne programske jezike.

Moderni Fortran (Fortran 95 i Fortran 2003) stekao je značajke potrebne za učinkovito programiranje za nove računalne arhitekture, omogućuje korištenje modernih tehnologija programiranja, posebice OOP-a.

Evolucija jezičnih standarda

Fortran je visoko standardiziran jezik, zbog čega ga je lako prenositi različite platforme... Novi jezični standardi uvelike čuvaju kontinuitet sa starijim, što omogućuje korištenje kodova prethodno napisanih programa i njihovu modifikaciju.

FORTRAN 66 (1972) Temeljen na IBM standardu FORTRAN IV FORTRAN 77 (1980) Uveo je mnoga poboljšanja: Fortran 90 (1991) Jezični standard je značajno revidiran. Fortran 95 (1997) Ispravak prethodnog standarda. Uvedeni su operator i konstrukcija FORALL, omogućujući veću fleksibilnost od operatora WHERE i konstrukcije za dodjelu nizova i zamjenu glomaznih petlji. FORALL vam omogućuje zamjenu bilo koje dodjele sekcija ili operatora WHERE i klauzule, posebice, omogućuje pristup dijagonali matrice. Ovaj operater smatra se obećavajućim u paralelnom računanju, pridonoseći učinkovitijoj paralelizaciji od petlji. Fortran 2003. (2004.) Daljnji razvoj OOP podrška na jeziku. Interakcija s operativnim sustavom. Također dodano sljedeće mogućnosti: Fortran 2008 (2010) Standard pretpostavlja podršku putem jezika za paralelno računanje (Co-Arrays Fortran). Također bi trebalo povećati maksimalnu dimenziju nizova na 15, dodati ugrađene posebne matematičke funkcije itd.

Kompilatori

Od početnog razvoja jezika, kompilatore Fortran proizvodi IBM. Trenutno IBM isporučuje kompajler za optimizaciju VS Fortran za IBM System z mainframe, čija povijest razvoja raznih verzija datira još od 1964. godine, kao i kompajler XL Fortran za platforme bazirane na arhitekturi PowerPC - AIX, Linux i superračunalo Blue Gene (verzija za Mac OS X kada su Macintosh računala koristila PowerPC procesore). Oba ova kompajlera sadrže vrlo sofisticirane optimizatore koji su rezultat kontinuiranog znanstveni rad IBM stručnjaci već pola stoljeća. Na temelju kompajlera IBM Fortran XL, Absoft, IBM-ov poslovni partner, kreirao je i isporučuje kompajler Absoft Pro Fortran za sustave bazirane na PowerPC (Linux, Mac OS X) i Intelu (Linux, Mac OS X, Windows) procesori.

Slobodna zaklada softver GNU je objavio otvoreni izvorni Fortran-77 kompajler g77, dostupan za gotovo svaku platformu i potpuno kompatibilan s GCC-om. Sada je zamijenjen kompajlerom GFortran, koji implementira gotovo sve konstrukcije standarda Fortran-95 i mnoge konstrukcije standarda Fortran-2003 i Fortran-2008. Također je potpuno unatrag kompatibilan s Fortranom 77. Postoji i neovisni projekt g95 za stvaranje kompajlera Fortran-95 na temelju GCC-a.

Značajke i struktura programa

Fortran ima prilično velik skup ugrađenih matematičke funkcije, podržava rad s cijelim brojevima, realnim i kompleksni brojevi visoka preciznost. Izražajna sredstva jezika u početku su bila vrlo loša, budući da je Fortran bio jedan od prvih jezika visoke razine. Kasnije su Fortranu dodane mnoge leksičke konstrukcije tipične za strukturno, funkcionalno, pa čak i objektno orijentirano programiranje.

Bušena kartica s oznakama stupaca za Fortran.

Struktura programa u početku je bila usmjerena na unos s bušenih kartica i imala je niz svojstava prikladnih za ovaj konkretni slučaj. Dakle, 1. stupac je služio za označavanje teksta kao komentara (simbol C), od 1 do 5 je bilo područje oznaka, a od 7 do 72 je bio stvarni tekst operatora ili komentara. Stupci od 73 do 80 mogli su se koristiti za numeriranje karata (za obnavljanje nasumično razbacanog špila) ili za kratak komentar, prevoditelj ih je ignorirao. Ako tekst operatora nije stao u zadani prostor (od 7. do 72. stupca), u 6. stupac sljedeće kartice stavlja se znak za nastavak, a zatim operater nastavlja na njega. Bilo je nemoguće smjestiti dva ili više operatora u jednu liniju (kartu). Kako su bušene karte otišle u povijest, te su se vrline pretvorile u ozbiljne neugodnosti.

Zato u Fortranu standardu, počevši od Fortrana 90, pored fiksnog formata izvorni tekst pojavio se besplatni format koji ne regulira položaj retka, a također vam omogućuje pisanje više od jednog operatora po retku. Uvođenje slobodnog formata omogućilo je stvaranje koda čija čitljivost i jasnoća nije niža od koda stvorenog korištenjem drugih modernih programskih jezika, kao što je ili Java.

Ljubazan " poslovna kartica"Stari Fortran" je ogroman broj oznaka koje su korištene kako u bezuvjetnoj grani GOTO, tako iu naredbama petlje i u izjavama koje opisuju formatirani ulaz/izlaz FORMAT. Veliki broj oznaka i GOTO naredbi često je činio Fortran programe teško razumljivim.

Upravo je ovo negativno iskustvo postalo razlogom zašto su u brojnim modernim programskim jezicima (na primjer, Java) oznake i pridruženi operatori bezuvjetnog skoka uvelike izmijenjeni.

Međutim, moderni Fortran oslobađa se viška oznaka zbog uvođenja operatora kao što su DO ... END DO, DO WHILE, SELECT CASE. Štoviše, samo u modernim jezičnim standardima klasični operator GOTO, koji se i danas koristi na mnogim jezicima. Izračunati izraz GOTO, kao i konstrukcija ENTRY - višestruki ulazak u procedure su uklonjeni.

Također, pozitivne značajke modernog Fortrana uključuju veliki broj ugrađene operacije polja i fleksibilna podrška za nizove s neobičnim indeksiranjem. Primjer:

Real, dimenzija (:,:) :: V ... dodijeli (V (- 2: 2, 0: 10)) ! Dodijelite memoriju za niz čiji indeksi mogu ! varirati od -2 do 2 (prvi indeks) ! a od 0 do 10 - drugi... V (2, 2: 3) = V (- 1: 0, 1) ! Rotirajte dio niza napiši (*, *) V (1, :) ! Ispišite sve elemente niza V čiji je prvi indeks 1. odvojiti (V)

Pozdrav svijete!

Fiksni format (znakovi "" koriste se za odvajanje razmaka na pozicijama retka od 1 do 6):

␣␣␣␣␣␣PROGRAM bok ␣␣␣␣␣␣PRINT *, "Zdravo, svijet!" ␣␣␣␣␣␣ KRAJ

Slobodni format:

Program hello print *, "Hello, World!" kraj

Opaske.

  • Naredba PROGRAM nije obavezna. Strogo govoreći, jedini potrebni operator Fortran programa je END izjava.
  • Izbor velikih ili malih slova za pisanje programskih izraza je proizvoljan. Sa gledišta modernim standardima Fortran jezik, skup velikih slova i skup malih slova poklapaju se pri pisanju jezičnih operatora.

Interakcija s drugim jezicima

Mnogi programski sustavi omogućuju povezivanje objektnih datoteka dobivenih kao rezultat prijevoda programa Fortran s objektnim datotekama dobivenim od kompajlera s drugih jezika, što omogućuje stvaranje fleksibilnijih i višenamjenskih aplikacija. Za jezik Fortran također je dostupan veliki broj knjižnica koje sadrže i potprograme za rješavanje klasičnih računskih problema (LAPACK, IMSL, BLAS), zadatke za organiziranje distribuiranog računanja (MPI, pvm) i zadatke za izgradnju grafičkih sučelja (Quickwin, FORTRAN / TK) ili pristup DBMS-u (Oracle).

Fortran u SSSR-u

Bilješke (uredi)

  1. Vidi na primjer: Netlib Repository na UTK i ORNL
  2. A. M. Gorelik. Evolucija programskog jezika Fortran (1957.-2007.) i izgledi za njegov razvoj // Računalne metode i programiranje, 2008., V. 9, str. 53-71 (prikaz, stručni).
  3. Bartenev O.V. Moderni Fortran. - M .: Dijalog MEPhI, 2005. - ISBN 5-86404-113-0
  4. A. M. Gorelik. objektno orijentirano programiranje u modernom Fortranu
  5. S. D. Algazin, V. V. Kondratjev. Visual Fortran programiranje. - M .: "Dijalog MEPhI", 2008. - 448 str. - ISBN 5-8243-0759-8
  6. Gorelik A. M. Vijesti
  7. VS FORTRAN
  8. XL Fortran za Linux
  9. Opći pregled Absoft Pro Fortran Compiler Suites
  10. Sun Studio - Benchmarks
  11. Esej Aleksandra Rastorgueva o pojavi Fortrana u Dubni
  12. Povijest računalne grafike u Rusiji

Književnost

  • Fortran. Referentni priručnik programera. Fortran automatski sustav kodiranja za IBM 704 EDPM. - IBM Corp. 1956. - 51 str.
  • ISO / IEC 1539-2: 2000 Informacijska tehnologija - Programski jezici - Fortran - 2. dio: nizovi znakova različite duljine
  • Robert W. Sebesta. 2.3. Računalo IBM 704 i jezik Fortran // Osnovni pojmovi programskih jezika = Concepts of Programming Languages ​​/ Per. s engleskog - 5. izd. - M .: Williams, 2001. - S. 63-69. - 672 s. - 5000 primjeraka. - ISBN 5-8459-0192-8 (ruski), ISBN 0-201-75295-6 (engleski)

Linkovi

  • gfortran - prevodilac Fortran 95/2003/2008, dio zbirke GNU kompilatora
  • u Protopediji - Enciklopedija programskih jezika (ruski)

Programski jezik Fortran prvenstveno se koristi za znanstveno računanje. Izmišljen je 1954. godine najstariji jezik programiranje na visokoj razini, a slijede Lisp (1958), Algol (1958) i COBOL (1959). Broj znanstvenih knjižnica napisanih na Fortranu i stvaranje posebnih prevoditelja-kompilatora omogućuju da se jezik koristi danas. Osim toga, stvoreno je više kalkulatora za vektorizaciju, koprocesori, paralelizam, koji su ovaj jezik ispreplitali za korištenje u industrijskoj proizvodnji. moderni svijet.

John Backus, IBM-ov radijski inženjer, objavio je članke 1954. pod naslovima "Preliminarno izvješće", "Specifikacije za IBM Matmal Transmula TRANslating System", iz kojih je nastao pojam FORTRAN. Zatim su bile potrebne još dvije godine truda cijelog tima, koji je on vodio, da napiše prvi kompajler za Fortran (25 000 redaka za IBM 704).

Ime jezika izvorno je napisano velikim slovima FORTRAN i korišten je za označavanje jezičnih verzija do Fortrana 77, za razliku od besplatne verzije sintaksa od Fortrana 90. U standardu Fortran 77 mala slova nisu dio jezika, ali ih većina prevoditelja podržava uz standard.

Fortran je dominantni programski jezik koji se danas koristi u inženjerskim aplikacijama. Stoga je važno da diplomirani inženjeri budu sposobni čitati i mijenjati Fortran kod. S vremena na vrijeme takozvani stručnjaci predviđaju da će jezik izgubiti svoju popularnost i uskoro se uopće prestati koristiti.

Ova su predviđanja uvijek bila neuspješna. Fortran je najrobusniji računalni programski jezik u povijesti. Jedan od glavnih razloga zašto je programski jezik Fortran preživio i preživjet će je softverska inercija. Nakon što je tvrtka potrošila mnogo resursa i možda milijune dolara na softverski proizvod, malo je vjerojatno da će prevesti softver na drugi jezik.

Glavna prednost Fortrana je što je standardiziran od strane međunarodnih tijela ANSI i ISO. Stoga, ako je program napisan u ANSI, tada će se izvoditi na bilo kojem računalu s kompajlerom Fortran 77. važna informacija... Dakle, programi su objekt orijentirani jezik Fortran programiranje postoji u različitim softverskih uređaja.

Faze izrade jezične platforme:

  1. Godine 1954.-1957. razvijen je prvi kompajler od nule. U to vrijeme nije bilo "jezika visoke razine" (= HLL), većina operativnih sustava bila je jednostavna, a memorija mala, otprilike 16 Kb. Prvi prevodilac radio je na IBM 704. Ovaj HLL bio je mnogo učinkovitiji od programiranja sklopa i vrlo popularan u svoje vrijeme.
  2. FORTRAN II je objavljen 1958. Iste godine razvijen je FORTRAN III, ali nikada nije pušten u široku proizvodnju.
  3. FORTRAN IV je nastao 1961. godine. Sadržavao je poboljšanja kao što su implementacija izjava COMMON i EQUIVALENCE.
  4. Godine 1962. ASA je počela razvijati standard za objektno orijentirani programski jezik Fortran. To je omogućilo prodavatelju da ga koristi u svakom novom računalu. I ta činjenica ga je učinila još popularnijim HLL, jezik je postao dostupan na Apple sustavi i TRS80.
  5. Godine 1967. izašao je FORTRAN 66, prvi svjetski HLL standard. Objavljivanje standarda značilo je da je jezik bio šire implementiran od bilo kojeg drugog. Do sredine 1970-ih, gotovo svako računalo, mini ili mainframe bilo je opremljeno standardnim jezikom FORTRAN 66. Jezik koji se koristio if naredbe, goto-izjave i spagethi programi. Ovo strukturirano programiranje postalo je popularno 60-ih i 70-ih godina.
  6. Fortran je postojao na bušenim karticama, posebno uz FMS sustav, optimizirajući izgled svojih izvora sve dok Fortran 90 nije uveo "besplatnu" sintaksu. U njemu kod polja Fortran počinje od 7. stupca i ne smije prelaziti 72 tisuće znakova.

Također treba napomenuti da prije Fortrana 90 razmak između 7. i 72. stupca nije bio važan. Tako se ciklus "DO I = 1,5" može napisati i "DOI = 1,5". S druge strane, "DO I = 1,5" je ekvivalentno "DOI = 1,5".

Brojni industrijski kodovi napisani su u Nastranu, NAG-u i biblioteci IMSL-Fortran. Važna je kompatibilnost novijih verzija s prethodnim verzijama. Iz tog razloga, Fortran 90 je potpuno kompatibilan s Fortranom 77. Međutim, sljedeće verzije već su uvedene standardne nekompatibilnosti.

Uskoro su uslijedili napredniji jezici Fortran 90 i Fortran 95, ažurirani na trenutni standard Fortran-2003. Unatoč činjenici da moderni prevoditelji rade neograničeno u svim trenutnim verzijama sustava Windows, pa čak i podržavaju 64-bitne procesore. U međuvremenu, proizvođači su prepoznali trend vremena i nude kompilatore za Linux u obliku objektno orijentiranog programskog jezika Actor Fortran.

Preduvjeti za korištenje programskog jezika

Morate razumjeti da je Fortran još uvijek široko korišten programski jezik i da se uglavnom koristi u području otkrivanja. Klasične aplikacije, poput fizike ili inženjerstva, gdje se izvode opsežni i složeni matematički izračuni. Opsežne matematičke biblioteke koje postoje za različite prevodioce su vrlo korisne u njima. Ukratko, može se tvrditi da se Fortran i danas koristi iz više razloga:

  • Tijekom godina razvijale su se brojne funkcionalne knjižnice.
  • Prisutnost softvera u Fortranu, koji zahtijeva vrlo važne resurse za razvoj, kada se smatra preskupim za prelazak na drugi jezik.
  • Posjedovanje moćnih kompajlera s ugrađenim Fortran funkcijama koje proizvode vrlo brzo izvršne datoteke.
  • Jezik je pristupačniji izumitelju koji nije imao specijalizirani računalni tečaj.

Mnogi znanstveni programi su sada napisani na C i C ++, za koje su prevoditelji dostupni na većini strojeva. Drugi kompajlirani jezici ponekad se koriste za znanstveno računanje, a posebno za programe poput Scilaba ili Matlaba. Potonji također uključuje biblioteke BLAS i LAPACK razvijene u Fortran programiranje... Matlab je izvorno bio Fortran program distribuiran sveučilištima i istraživačkim centrima.

Iako je Tom Lahey sada "jedini" opći kompajler, Lahey Computer Systems i dalje koriste mnogi programeri. Lahey već nekoliko godina radi s Fujitsuom, Lahey se fokusira na Fortran parser, a Fujitsu na generator koda. Trenutni Compiler Suite za Windows zove se Lahey Fujitsu Fortran 95 (LF95) i dostupan je u različite verzije, od kojih se neki također integriraju s Vizualni studio.NET 2003.

Postoji i jeftina verzija LF95 Express bez vlastitog IDE-a. Trenutna verzija je 7.1. na Linuxu se zove Lahey / Fujitsu Fortran 95 v6.2 kompajler za Linux i dostupan je u dvije različite verzije. Na primjer, Pro verzija uključuje OpenMP v2.0 kompatibilnost, jednostavan Winteracter Starter Kit grafički motor, matematička biblioteka i znanstvena knjižnica Fujitsu rutine 2.

Drugi proizvođač je Absoft. Kompajlatori i C++ postoje ne samo za Windows i Linux, već i za OS X na Macintoshu. Ovi prevoditelji su od interesa za programere koji trebaju ili žele podržati sve tri platforme. Nažalost, Absoft razlikuje 32-bitnu i 64-bitnu verziju za Linux, trenutno koristi verziju 10.0 Fortrana 95 za 64-bitni Linux.

EKOPath Compiler Suite relativno je nov na tržištu. Sastoji se od C++ kompilatora i Fortran razvojnog okruženja za Linux, koji su također dostupni zasebno i uglavnom su namijenjeni 64-bitnim AMD korisnicima. Također radi na Intel EM64T. Također, Microsoft je jednom pokušao pronaći "jeftino tržište" za Fortran i doveo Microsoft Powerstation na tržište.

Tržište je možda bilo premalo za softverskog diva, ali Digital je preuzeo dio koda 1997. i iskoristio svoje iskustvo s prevodiocima Digital Unix i OpenVMS. Bilo je to rođenje još uvijek vrlo uspješnog Digital Visual Fortrana. U nekom trenutku, Digital se potom preselio na Compaq, na koji je kompajler poboljšan Trenutna verzija Compaq Visual Fortran (CVF) v6.6.

Osim "normalnih" 32-bitnih platformi, postoje i razni 64-bitni kompajleri, poput onih za Intel Itanium i Intel EM64T. Iako nisu "hitni" za opseg isporuke, dostupni su za besplatno preuzimanje putem web sustava. Intelova podrška Premijer.

Nakon jednokratne, pomalo glomazne registracije, možete je koristiti godinu dana, s novim ažuriranjima svakih nekoliko tjedana. Čak i starije verzije će ostati dostupne.

Fortran program je niz redaka teksta. Tekst mora slijediti određenu sintaksu. Na primjer: kružnica polumjera r, površina c.

Ovaj program čita stvarni radijus i određuje površinu kružnice polumjera r:

"Radijus r:" glasi (*, *) r;

površina = 3,14159 * r * r;

napišite (*, *) "Oblast =";

Redovi koji počinju s "C" su komentari i nemaju nikakvu drugu svrhu osim da program učine čitljivijim ljudima. Izvorno su svi Fortran programi bili napisani velikim slovima. Većina programera sada piše malim slovima jer je čitljivije.

Fortran program se obično sastoji od glavnog programa ili upravljačkog programa i nekoliko potprograma, procedura ili potprograma. Glavna struktura programa:

  • naziv programa;
  • deklaracije;
  • izjave;
  • Stop;
  • kraj.

Kurziv tekst ne treba shvatiti kao doslovan tekst, već kao Opći opis... Naredba stop nije obavezna i može se činiti pretjeranom, jer će se program ionako zaustaviti kada dođe do kraja, ali preporuča se uvijek prekinuti program s naredbom stop kako bi se naglasilo da je nit prekinuta.

Pravila položaja stupca

Fortran 77 nije jezik slobodnog formata, ali ima vrlo strog skup pravila za formatiranje izvornog koda. Najviše važna pravila su pravila rasporeda stupaca:

  • pukovnik 1: Prazno ili "c" ili "*" za komentare.
  • pukovnik 2-5: oznaka operatera.
  • pukovnik 6: nastavak prethodni redak.
  • pukovnik 7-72: izjava.
  • pukovnik 73- 80: Redni broj.

Fortran redak koji počinje slovom "c" ili zvjezdicom u prvom stupcu je komentar. Komentari se mogu pojaviti bilo gdje u programu. Dobro napisani, kritični su za čitljivost programa. Komercijalni kodovi Fortran često sadrži oko 50% komentara. Također možete naići na programe koji koriste Uskličnik(!). Ovo je vrlo nestandardno u Fortranu 77, ali dopušteno u Fortranu 90.

Uskličnik se može pojaviti bilo gdje u retku. Ponekad izjava ne stane u jedan redak, tada možete podijeliti naredbu u dva ili više redaka i koristiti znak za nastavak na mjestu.

  1. C23456789 - Ovo pokazuje položaj stupca.
  2. "C" - sljedeći operater prolazi kroz dva područja fizičke linije.
  3. Površina = 3,14159265358979+ * r * r.

Prazni razmaci se zanemaruju počevši od Fortrana 77. Stoga, ako uklonite sve razmake u Fortranu 77, program je i dalje sintaktički ispravan, iako gotovo nečitljiv za operatere.

Nazivi varijabli u Fortranu imaju 1-6 znakova koji se biraju slova a-z i brojevi 0-9. Prvi znak mora biti slovo. Fortran 90 dopušta nazive varijabli proizvoljne duljine. Fortran 77 ne pravi razliku između vrha i mala slova, zapravo, pretpostavlja da su svi ulazi velika slova. Međutim, gotovo svi prevoditelji F 77 prihvaćaju mala slova. Svaka varijabla mora biti definirana u deklaraciji. Time se postavlja tip varijable. Najčešći popisi varijabli su:

  • cijeli broj;
  • stvaran;
  • dvostruka preciznost;
  • kompleks;
  • logično;
  • lik.

Popis varijabli mora biti odvojen nazivima zarezom. Svaka varijabla mora biti deklarirana točno jednom. Ako varijabla nije deklarirana, F 77 koristi skup implicitnih pravila za utvrđivanje tipa. To znači da su sve varijable koje počinju slovima "in" cijeli brojevi, a sve ostale realne. Mnogi stariji F 77 programi koriste ova implicitna pravila, ali programeri to ne bi trebali činiti, jer se vjerojatnost programskih pogrešaka dramatično povećava ako nedosljedno deklariraju varijable.

Fortran 77 ima samo jedan tip za cjelobrojne varijable. Cijeli brojevi se obično pohranjuju kao 32-bitne (4 bajta) varijable. Stoga, sve cjelobrojne varijable moraju imati vrijednosti u rasponu [-m, m], gdje je m približno 2 * 10 9.

F 77 ima dva različiti tipovi za varijable s pomičnim zarezom koje se nazivaju realna dvostruka preciznost. Neki numerički izračuni zahtijevaju vrlo visoku preciznost i treba koristiti dvostruku preciznost. Obično je real varijabla od 4 bajta, a dvostruka preciznost je 8 bajtova, ali to ovisi o stroju.

Nestandardne verzije Fortrana koriste pravu sintaksu * 8 za označavanje 8-bajtnih varijabli s pomičnim zarezom. Neke se konstante pojavljuju mnogo puta u programu. Stoga ih je poželjno definirati samo jednom, na početku programa. Za to se koristi parametarski operator. Također čini programe čitljivijim. Na primjer, program za područje kruga trebao bi biti napisan ovako.

Sintaksa operatora parametra (ime = konstanta, ..., ime = konstanta). Pravila za operator parametara:

  1. "Varijabla" definirana u naredbi parametra nije varijabla, već konstanta čija se vrijednost nikada ne može promijeniti.
  2. "Varijabla" može prikazati najviše jedan parametarski operator.
  3. Parametar operatora mora biti ispred prvog izvršnog operatora

Neki dobri razlozi za korištenje parametra - pomaže u smanjenju broja pogrešaka pri pisanju, lako je promijeniti konstantu koja se pojavljuje mnogo puta u programu.

Booleovski izrazi mogu imati samo vrijednost .TRUE. ili .NETOČNO. i može se generirati usporedbom pomoću relacijskih operatora.

Ne možete koristiti simbole kao što su "<» или «=» для сравнения в F 77, но можно использовать правильную двухбуквенную аббревиатуру, заключенную точками. Однако такие символы разрешены в Fortran 90.

Booleovi izrazi mogu se kombinirati s logičkim operatorima "AND", "OR", "NOT", koji imaju očito značenje. Vrijednosti istine mogu se pohraniti u booleove varijable. Zadatak je isti kao i aritmetički zadatak.

Primjer: logički a, ba = .TRUE.b = a .AND. 3 .LT. 5/2

Redoslijed prioriteta je vrlo važan. Pravilo je da se prvo vrednuju aritmetički izrazi, zatim relacijski operatori i na kraju logički operatori. Stoga će b biti dodijeljen .FALSE. U gornjem primjeru, boolenovi se rijetko koriste u Fortranu, ali se često koriste u uvjetnim izjavama kao što je izraz "if".

Konstanta i dodjela

Najjednostavniji oblik izražavanja je konstantan. Postoji 6 vrsta konstanti koje odgovaraju 6 tipova podataka. Evo nekih cjelobrojnih konstanti: 10-10032767 + 15

Realne konstante: 1.0-0.252.0E63.333E-1.

E-notacija znači da trebate pomnožiti konstantu s 10, podignuto na stepen nakon "E". Prema tome, 2.0E6 je dva milijuna, a 3.333E-1 je otprilike jedna trećina za konstante koje su veće od najveće stvarno dopuštene ili koje zahtijevaju visoku preciznost, trebalo bi koristiti dvostruku preciznost. Oznaka je ista kao i za stvarne konstante, osim što je "E" zamijenjeno "D".

Primjer: 2.0D-11D99.

Ovdje 2.0D-1 predstavlja dvostruku preciznost s jednom petinom, dok je 1D99 jedinica koju slijedi 99 nula.

Sljedeći tip su složene konstante. Označavaju se parom konstanti (cijelih ili realnih) odvojenih zarezima i stavljenih u zagrade.

Primjeri su: (2, -3) (1.9.9E-1). Prvi broj označava stvarni dio, a drugi imaginarni dio.

Peti tip su booleove konstante. Mogu imati samo jedno od dva značenja:

Imajte na umu da točke koje sadrže slova moraju biti napisane.

Posljednja vrsta su karakterne konstante. Najčešće se koriste u obliku niza znakova koji se naziva niz. Sastoje se od proizvoljnog niza znakova zatvorenih u apostrofe (jednostruki navodnici):

"Sve prolazi!"

"Lijep je dan"

String i znakovne konstante razlikuju velika i mala slova. Problem nastaje kada trebate imati pravi apostrof u samom nizu. U ovom slučaju, trebate udvostručiti apostrof: "It" "s a nice day", što znači "Kakav prekrasan dan."

Uvjetni izrazi su bitne komponente svakog programskog jezika. Najčešća takva izjava u Fortranu je "if" izjava, koja zapravo ima nekoliko oblika.

Najjednostavniji je logički izraz "if" u opisu Fortrana: if (logički izraz) izvršni izraz.

Ovo bi trebalo biti napisano u jednom retku, na primjer, kada definirate apsolutnu vrijednost x:

ako je (x .LT. 0) x = -x

Ako se više od jedne izjave treba izvršiti u "if" onda treba koristiti sljedeću sintaksu: if (logički izraz) thenstatementsendif.

Tijek izvršenja je od vrha do dna. Uvjetni izrazi se vrednuju uzastopno dok se ne pronađe prava vrijednost. Zatim se izvršava odgovarajući kod i kontrola prelazi na sljedeću naredbu nakon završetka "if".

Ako se izrazi mogu ugniježditi na više razina. Važno je koristiti pravilno uvlačenje kako bi se osigurala čitljivost. Evo primjera:

ako (x .GT. 0) ondanif (x .GE. y) onda napišite (*, *) "x je pozitivan i x> = y" inače napišite (*, *) "x je pozitivan, ali x< y"endifelseif (x .LT. 0) thenwrite(*,*) "x is negative"elsewrite(*,*) "x is zero"endif

Programeri bi trebali izbjegavati ugniježđenje mnogih razina if naredbi, jer će ih biti teško pratiti.

Može se koristiti bilo koja Unix radna stanica s kompajlerom F 77. Iskusni programeri preporučuju korištenje ili Sun ili Dec.

Fortran program se sastoji od običnog teksta koji slijedi određena pravila sintakse. To se zove izvorni kod. Programeri koriste uređivač za pisanje izvornog koda. Najčešći uređivači na Unixu su emacs i vi, ali oni mogu biti malo zeznuti za korisnike početnike. Možete koristiti jednostavniji uređivač kao što je xedit, koji radi pod X prozorima.

Nakon što je Fortran program napisan, sprema se u datoteku s ekstenzijom ".f" ili ".for" i program se prevodi u strojno čitljiv oblik. To se radi pomoću posebnog programa koji se zove kompajler. Fortran 77 kompajler se obično naziva f77. Rezultat kompilacije prema zadanim postavkama dobiva pomalo zagonetni naziv "a.out", ali ako je potrebno, možete odabrati drugo ime. Da biste pokrenuli program, jednostavno unesite naziv izvršne datoteke, na primjer, "a.out". Prevoditelj prevodi izvorni kod u objektni kod, a povezivač ili učitavač u izvršnu datoteku. Kao što vidite, ovaj postupak uopće nije kompliciran i dostupan je svakom korisniku.

Simulacija je jedna od najčešće korištenih metoda proizvodnje i drugih sustava dostupnih u modernim tvornicama. Većina simulacijskih modela izgrađena je korištenjem objektno orijentiranog programskog jezika Actor Fortran ili simulacijskog softverskog paketa napisanog na tradicionalnom jeziku. Ovi alati imaju svoja ograničenja. Objektno orijentirana tehnologija pokazala je sve veću upotrebu u mnogim područjima i obećava fleksibilniji i učinkovitiji pristup modeliranju poslovnih sustava.

Simula Fortran programiranje uspoređuje se s uobičajenim znanstvenim programskim jezikom koji se zove FORTRAN. Tipičan vojni simulacijski model je programiran i u SIMULA iu FORTRAN-u. Program SIMULA pokazao se 24% kraćim od FORTRAN verzije.

Verzija SIMULA je također jednostavnija i daje bolju sliku simuliranog modela. S druge strane, vrijeme izvođenja produkcijskih pokretanja je 64% duže s objektno orijentiranim programskim jezikom Simula Fortran. Vaganje prednosti i nedostataka pokazuje da će SIMULA biti sve profitabilniji softver, s većim troškovima osoblja i nižim troškovima računala.

CUDA pokazuje kako programeri aplikacija visokih performansi mogu iskoristiti snagu GPU-a koristeći Fortran, poznati jezik za znanstveno računanje i testiranje performansi superračunala. Autori ne pretpostavljaju nikakvo prethodno iskustvo s paralelnim računalstvom i pokrivaju samo osnove i koriste najbolje prakse. Računalna učinkovitost GPU-ova koji koriste CUDA Fortran osigurana je ciljnom GPU arhitekturom.

CUDA Fortran za znanstvenike i inženjere definirat će računski intenzivne dijelove koda i modificirati kod za upravljanje podacima, konkurentnost i optimizaciju performansi. Sve se to radi u Fortranu, bez potrebe za prepisivanjem programa na drugi jezik. Svaki koncept je ilustriran stvarnim primjerima, tako da možete odmah procijeniti izvedbu svog koda.

Možda će se jednog dana globalna korporacija "konačno globalizirati" i odlučiti da Fortran više nije potreban, ali ne sada. Zahvaljujući trenutnim mogućnostima modernog Fortrana, mnogi programeri i znanstvenici vide budućnost iza njega. Osim toga, u svijetu ima dovoljno proizvođača koji žive od razvoja modernih kompilatora i dobro zarađuju na tom procesu.

Bio sam potaknut da pokušam napisati svoj prvi post ovdje, gdje vt4a2h predlaže korištenje C ++ za učenje. Da, mnoge kopije su razbijene na ovu temu.

Ja sam, kao vjerojatno većina školaraca na prostranstvima naše goleme Domovine, kroz plavi ekran počeo shvaćati osnove, ali ne smrt, nego Turbo Pascal 7.0. Tu je, naravno, bio i Basic, s kojim sam se prvi put susreo u predškolskoj dobi na sovjetskom računalu "Elektronika". Tada se činio kao čudan uređivač teksta, jer je računalo stvoreno za igre očima djeteta. No, već na institutu sam se upoznao s jezikom Fortran, naučivši koji, još se pitam zašto se ne koristi za nastavu.

Da, mnogi će reći da je jezik mrtav, da ne odgovara modernoj stvarnosti, a udžbenici s naslovom, kao na slici, izazivaju samo osmijeh. Pokušat ću objasniti zašto je ovaj jezik tako divan i zašto ga preporučujem kao prvi jezik. Ako ste zainteresirani, dobrodošli pod kat.

Smatram da temelj za osnove programiranja treba postaviti još u školskim godinama, barem u srednjoj školi. Čak i ako će se u životu računalo koristiti samo za tipkanje u Wordu ili za komunikaciju na društvenim mrežama, minimalno znanje o tome što je algoritam i kako strukturirati slijed radnji da bi se postigao željeni rezultat barem neće štetiti mladom adolescentu kao odraslog života, i najvjerojatnije će pomoći u formiranju posebnog načina razmišljanja.

Da bi nastava informatike bila radost, a ne san u noćnim morama, učenik mora razumjeti što radi, kako to radi i zašto ispada ovako, a ne drugačije. Uostalom, zapravo morate ispravno prenijeti informacije o petlji i uvjetnom operatoru kako bi osoba mogla samostalno pisati programe. Štoviše, što je sintaksa jezika jednostavnija, to je lakše razumjeti logiku pisanja koda. Ako osoba nauči sastaviti ispravan algoritam, tada za programiranje na drugim jezicima treba samo naučiti sintaksu ovog jezika, a osnova će već biti postavljena.

Zašto je Fortran tako divan?

Okrenimo se povijesti stvaranja ovog jezika. Pojavio se dalekih 50-ih godina prošlog stoljeća, kada su računala još bila velika, bilo je malo programera, a informatika se nije predavala u školi i općenito se smatrala pseudoznanošću. Potreban je bio jednostavan jezik koji će inženjerima i znanstvenicima pomoći da "napajaju" formule napisane na papiru računalima, čak i putem bušenih kartica.

Otuda i naziv samog jezika: Za mula tran slator ili "prevoditelj formule". Oni. u početku je jezik bio namijenjen osobama bez posebne obuke, što znači da je morao biti što jednostavniji.

Pa, kreatori su uspjeli u jednostavnosti. Klasični prvi program izgleda ovako:

Program hw write (*, *) "Halo, World!" kraj
Sintaksa je čak nešto jednostavnija od Pascala, nema potrebe stavljati na kraj retka " ; " ili " : "pred znakom jednakosti. Štoviše, osobama s minimalnim znanjem engleskog jezika neće biti teško razumjeti značenje najjednostavnijeg programa.

Ovdje želim napomenuti da Fortran ima nekoliko revizija standarda, od kojih su glavne 77 i 90 (uz zadržavanje kontinuiteta). Fortran je stvarno arhaičan, postoji ograničenje duljine retka, a potrebno je uvući početak retka, što bi mladom kandidatu za programera moglo izazvati kulturni šok. Nije bez razloga da su programi napisani u Fortranu 77 od mog prijatelja dobili široki naziv "Brežnjev kod". Stoga se sav moj tekst odnosi na jezični standard 90 i noviji.

Kao primjer navest ću kod za izračunavanje zbroja nenegativnih cijelih brojeva od 1 do n, upisanog s tipkovnice, koji je napisala moja studentica diplomskog studija dok je predavala programiranje od nule. Tamo sam doživio podučavanje Fortrana kao svog prvog jezika. Nadam se da je ovo bilo dobro za nju i da je moj eksperiment uspio. Barem je naučila osnove u nekoliko lekcija, od kojih je prva bila utrošena na predavanje o jeziku.

Program chisla implicitno nema! Varijable cijeli broj n, i, s! Tijelo chisla s = 0 upišite (*, *) "Unesite n" pročitajte (*, *) n ako (n.le.0) zatim napišite (*, *) "Negativno ili nula" inače učinite i = 1, ns = s + i end do napisati (*, *) "Zbroj =", s kraj ako je kraj
Kao što vidite, pišemo kod onako kako mislimo. U principu, pripravnik ne može imati nikakvih poteškoća. Pažljivi čitatelj će, naravno, pitati što je implicitno nijedna i dvije zvjezdice u zagradama odvojene zarezima. implicitni none nam govori da eksplicitno specificiramo tip varijabli, dok će bez ovog unosa prevodilac sam pogoditi tip. Prva zvjezdica znači da se unos i izlaz događa na ekranu, a druga znači da se I/O format automatski detektira. Zapravo, Fortran program ne izgleda ništa kompliciranije od gore napisanog dijela koda.

Što je sa softverskim okruženjem?

U školama, iu bilo kojoj vladinoj instituciji, često se postavlja pitanje o softveru, posebice o njegovom licenciranju. Budući da se novac za te potrebe posebno ne izdvaja. Bar u moje vrijeme je bilo problema s tim, možda se sada situacija promijenila na bolje.

Svaki uređivač teksta prikladan je za pisanje programa na Fortranu. Ako želite isticanje sintakse, možete koristiti Notepad ++ (podržava samo 77 standarda sintakse) ili SublimeText. Program je napisan, s čime ćemo kompajlirati? Jednostavno je, možete koristiti besplatni GNU Fotran. Ako je korištenje planirano za nekomercijalnu upotrebu, tada je dopušteno ciljati na kompajler iz Intela, koji je dobro optimiziran za istoimene procesore i dolazi s minimalno potrebnim IDE-om. Oni. ulazni prag je vrlo povlašten.

Prema mnogim korisnicima, najbolje razvojno okruženje za Fortran ostaje Compaq Visual Fortran 6.6, čija je najnovija verzija objavljena početkom 2000-ih. Zašto se dogodilo da je okruženje bazirano na Visual Studio 6.0, koje se bez plesanja s tamburom pokreće najviše na Windows XP 32 bit, a ima ograničenje u korištenoj memoriji, steklo toliku popularnost među fortransima. Odgovor je prikazan na donjoj slici.

Ovo je Compaq Array Visualizer, koji je vrlo zgodan alat za vizualizaciju 1, 2 i 3-dimenzionalnih nizova u procesu otklanjanja pogrešaka programa izravno iz debuggera. Kako kažu, probao sam ga jednom, sada ga jedem. Činjenica je da se Fortran danas koristi uglavnom u znanosti (o čemu će biti riječi kasnije), posebno u području kojim se bavim, naime, u atmosferskoj fizici. Prilikom otklanjanja pogrešaka u programima, nizovi predstavljaju različita meteorološka polja kao što su temperatura, tlak, brzina vjetra. Puno je lakše tražiti pogrešku u grafičkim poljima nego u nizu brojeva, pogotovo jer obično znate kako bi polje trebalo otprilike izgledati, pa se očite pogreške trenutno izrezuju.

Nažalost, sav rad kompajlera prešao je s Compaqa na Intel. Intel je u početku podržavao Array Visualizer, iako su te verzije već bile blijed odraz proizvoda Compaq, nije bilo tako zgodno raditi s njima kao prije, ali su podržane barem minimalne performanse. Nažalost, Intel je prestao razvijati nove verzije Array Visualizera, odustajući od ovog najzgodnijeg alata.Zato zajednica Fortran najvećim dijelom piše programe i ispravlja ih pod Compaq Visual Fortran na Windowsima, a pokreće borbene proračune na poslužiteljima pod Linuxom koristeći Intel kompajlere Intel, saslušajte molbe korisnika, vratite normalan alat za renderiranje niza svom alatu za ispravljanje pogrešaka!

Fortranovo mjesto u modernom svijetu

A sada dolazimo do same teme koja obično izaziva burnu raspravu s mojim kolegama koji koriste Matlab, koji tvrde da je rijedak jezik opisan u ovom postu beskorisan ni za što. Ovdje se ne slažem s njima. Činjenica je da se Fortran povijesno koristio u inženjerskim ili znanstvenim izračunima, te je stoga tijekom vremena nabavio mnoge gotove knjižnice i programske kodove za rješavanje određenog problema.

Kod se doslovno prenosi s generacije na generaciju, pa čak i dobro dokumentiran. Možete pronaći mnoga gotova rješenja jednadžbi matematičke fizike, linearne algebre (ovdje valja istaknuti uspješnu implementaciju rada s matricama), integralnih i diferencijalnih jednadžbi i još mnogo, puno više. Vjerojatno je teško pronaći problem iz područja fizike i matematike, za koji algoritam na jeziku Fortran ne bi bio implementiran. A ako uzmemo u obzir izvrsnu optimizaciju Intelovih kompilatora za Intelove procesore, podršku za paralelno računanje na klasterima visokih performansi, onda postaje jasno zašto ovaj jezik zauzima svoje zasluženo prvo mjesto u znanstvenoj zajednici. Mislim da možete pronaći Fortran kompajler instaliran na bilo kojem superračunalu.

Većina ozbiljnih modela, barem u području atmosferske fizike, napisana je na Fortranu. Da, da, vremenska prognoza, koja s vremena na vrijeme sve zanima, dobiva se tijekom proračuna modela napisanih na ovom jeziku. Štoviše, jezik nije u stagnaciji, već se stalno usavršava. Dakle, nakon standarda 77 i 90 opisanih ranije, pojavila su se nova izdanja 95, 2003, 2008, čija je podrška uvedena u trenutne prevoditelje. Najnovije verzije Fortrana donekle su osvježile stari provjereni jezik, dodajući podršku za moderni stil, dodajući objektno orijentirano programiranje, čiji je nedostatak bio gotovo glavni adut protivnika ovog jezika. Štoviše, Portland Group je izdao PGI CUDA Fortran Compiler, koji omogućuje vrlo paralelne izračune na video karticama. Dakle, pacijent je više nego živ, što znači da su Fortran programeri i dalje traženi do sada.

Umjesto pogovora

A sada bih se želio vratiti na prvobitno pokrenutu temu podučavanja programiranja, te pokušati sažeti glavne prednosti Fortrana pri odabiru njega kao prvog jezika.
  • Fortran je vrlo jednostavan za naučiti, sintaksa je razumljiva neuvježbanoj osobi. Nakon što naučite osnove, lako je ponovno naučiti bilo koji drugi jezik.
  • Besplatni skup alata omogućuje vam da ne primate nepotrebna pitanja od nositelja autorskih prava.
  • Jezik je učiteljima poznat, jer postoji već dugo, a naši učitelji su uglavnom predstavnici starije generacije.
  • Rasprostranjena je diljem svijeta i riznica je svih vrsta knjižnica.
  • Standardiziran, kompatibilan s više platformi i unatrag.
  • Koristan je studentima tehničkih, a posebno fizikalno-matematičkih smjerova, zbog orijentacije na znanstveno-tehničke proračune.
  • To je relevantno i traženo do danas.
Pa zašto ne Fortran? * "Magic PC" 2000 №6 (28), str. 49–50.

Godine 1955. objavljen je prvi algoritamski jezik visoke razine FORTRAN(FORmula TRANslator - prevoditelj formula). Koristio se uglavnom za rješavanje znanstvenih, tehničkih i inženjerskih problema, a razvili su ga zaposlenici IBM-a pod vodstvom John Backus... Nešto kasnije, 1957., John Backus i njegovi suradnici instalirali su prvi kompajler Fortran u IBM-u (Bestinghouse). Programeri koji su prije radili isključivo u Assembleru bili su skeptični u pogledu mogućnosti jezika visoke razine visokih performansi, pa je glavni kriterij za razvoj Fortran standarda i stvaranje kompilatora iz ovog jezika bila učinkovitost izvršnog koda. Inače, termin "kompilator" tada se nije uvelike koristio, iako je već bila predstavljena Grace Hopper, jedina žena admiralka u Sjedinjenim Državama, koju su zvali i "prva dama programiranja i baka Cobola".
Većina Fortranovih operatora prevedena je izravno u jednu ili dvije strojne instrukcije, jednostavne sintaktičke konstrukcije i aktivna upotreba oznaka i goto omogućili su dobivanje vrlo brzog koda, a kao rezultat toga, Fortran programi su ponekad radili brže od asemblerskih programa. Sama unutarnja struktura prevedenog programa također je bila vrlo jednostavna - sav kod, svi potprogrami i svi podaci, zajedno sa zajedničkim blokom, bili su smješteni isključivo u statičkoj memoriji, što je, međutim, onemogućavalo korištenje rekurzije.
Budući da je Fortran bio prvi jezik visoke razine koji je zadovoljio potrebe većine korisnika u to vrijeme i jednostavan za učenje, proširio se vrlo brzo.
Zbog široke rasprostranjenosti ovog jezika i pojave mnogih Fortran programa (uglavnom računske prirode), pitanje njegove standardizacije postalo je hitno. Isprva je to bio standard Fortran IV 1964., zatim, kako su se pojavile nove ideje, novi standard je usvojen 1978. Fortran 77(f77) s modernijim i fleksibilnijim sintaktičkim proširenjima. Danas su najčešće varijante Fortrana Fortran 90(f90) i Fortran 95... Grupa entuzijasta završava rad na super verziji jezika F2k, koja će biti objavljena kasnije ove godine.
Iako su se nove verzije jezika ponekad dodavale i nepotrebne (na primjer, proširenja povezana s dinamičkom dodjelom memorije) i korisne, poput modularne organizacije programa, rada s dijelovima nizova itd., danas se ovaj jezik ne može nazvati obećavajućim za studija, budući da je njezina sintaksa znatno zastarjela.
Međutim, za one koji često moraju rješavati razne računske probleme, uopće nije potrebno uzeti u ruke udžbenik matematike i svaki put "krenuti od nule". U 90% takvih slučajeva ono što tražite već je dugo implementirano i otklonjeno u Fortranu. Stoga je, najvjerojatnije, Fortranov život osiguran dugo vremena.
Postoji još jedna, relativno mlada niša za Fortran - paralelno računanje, gdje vam stroga semantika jezika omogućuje dobivanje programa visokih performansi. Obično se koristi standard f90, malo proširen skupom operatora za označavanje dijelova programa prikladnih za paralelizaciju. Paralelni Fortran ima svoj standard HPF(Fortran visokih performansi). Ipak, obožavatelji Fortrana, čiji je moto postao legendarna fraza "Zašto bih učio druge jezike kad mogu sve napisati na Fortranu", osjetili su njegovu očitu neprikladnost za velike projekte zbog privrženosti sintaksi 50-ih, a pokušao je u njega uvesti trendovske OOP ideje, ali objekt Fortran kao standard nikada se nije pojavio.
Među besplatnim verzijama Fortrana najpoznatija je f2c, koja je implementirana za sve UNIX sustave i pretvara tekst Fortran programa u C kod. Za DOS postoji besplatna verzija bcf77. Od komercijalnih verzija, prije svega, treba istaknuti Microsoft Fortran, koji vam omogućuje stvaranje dll-biblioteka, i Watcom Fortran, koji generira vrlo učinkovit kod. Za zadatke koji zahtijevaju visoku točnost izračuna, namijenjen je prevodilac iz MicroWaya. Općenito, Fortran prevoditelji različite kvalitete dostupni su na apsolutno svim računalnim platformama.
Međutim, Fortranova glavna zasluga leži negdje drugdje. Kada je postalo potrebno razvijati vrlo velike projekte, nedostaci Fortrana, povezani prvenstveno s "teškim" otklanjanjem pogrešaka, postali su nepotrebno opterećujući. Stoga je Fortran poslužio kao snažan poticaj za razvoj teorije otklanjanja pogrešaka i testiranja programa. Pojavile su se stotine Fortranovih sintaktičkih verifikatora koji hvataju skrivene logičke pogreške. Kasnije su iz tog smjera izrasla takva teorijska područja programiranja kao što su ekvivalentne optimizacijske transformacije programa, kompilacija na visokoj razini, automatizirano testiranje itd. Stoga ne smijemo zaboraviti na Fortran. Vjerojatno ga nema smisla koristiti kao alat u zadacima integracije sustava, ali ono što su razvili najbolji programeri u 30-40 godina moglo bi ubrzati proces razvoja. Barem, za Fortran postoji neusporedivo više softverskih "građevinskih blokova" nego za druge programske jezike. ■

* * *
John Backus Rođen 3. prosinca 1924. u Philadelphiji, Pennsylvania, u bogatoj obitelji, djetinjstvo je proveo u Wilmingtonu. Nakon završene srednje škole 1942. godine upisao je Sveučilište Virginia na Kemijski fakultet (na inzistiranje oca kemičara), ali je nakon nekog vremena prekinuo studiranje i 1943. pozvan u vojnu službu.
Backus je počeo služiti u brigadi protuzračne obrane u Fort Stewartu, Georgia, ali je kasnije poslan na fakultet da studira medicinu.
Neko je vrijeme s entuzijazmom radio u gradskoj bolnici, ali je 1946. godine izgubio interes za ovaj posao, napustio je vojsku i preselio se u New York, iako nije znao što poduzeti i kako živjeti.
Nakon nekog vremena Backus je upisao radiotehničku školu. "Imao sam jako dobrog učitelja i on me zamolio da izračunam karakteristike nekih krugova. Bilo je užasno zamorno, ali iznimno zanimljivo."
Backus je ubrzo upisao Sveučilište Columbia (New York) na studij matematike, gdje je diplomirao (1949.). Nedugo prije završetka studija posjetio je računalni centar IBM na aveniji Madison. I tu mu se sreća nasmiješila po drugi put - 1950. Backus je postao programer u IBM-u.
O IBM-ovoj dominaciji u računalnoj industriji prvi put se govorilo 1952. godine. Sve je počelo sa 701, također poznatim kao Defense Calculator. Odmah nakon izlaska modela 701, stručnjaci Odjela za primijenjena istraživanja počeli su ga poboljšavati (1955.-1956.).

Najozbiljnije promjene predložio je John Backus, koji je kasnije aktivno sudjelovao u stvaranju računala 704. Osobito se zahvaljujući njemu pojavila takozvana tehnologija "speed-coding" koja je omogućila značajno pojednostavljenje pisanje programa za 701. "Mogućnost ubrzanja generiranja koda za Stroj 701, koji je bilo jednodijelno računalo s fiksnom točkom bez indeksnih registara, pretvorila ga je u sustav s pomičnim zarezom s proizvoljnim adresiranjem i indeksnim registrima", prisjetio se Backus. Dakle, korisnici više nisu morali brinuti o binarnom kodu.”
Već tada su se pojavile prve komponente tehnologije brzog programiranja koja se danas koristi. Zapravo, ovaj je sustav postao prethodnik sličnih kompleksa koji su objavljeni 50-60-ih godina, a potom su zamijenjeni jezicima visoke razine.
A 1955. Backus je "izumio" Fortran, prvi strojni jezik visoke razine. Nakon toga, prisjećajući se tog razdoblja, Backus će reći: "Nismo znali čemu težiti, i nismo znali kako to učiniti." U početku je planirano da se svi radovi dovrše početkom 1954. godine, ali je razvoj jezika završen gotovo dvije godine kasnije.
Prva verzija kompajlera sastojala se od 25 000 redaka strojnog koda snimljenog na magnetskoj vrpci. Svaki IBM 704 dobio je kopiju programa s priručnikom za programiranje na 51 stranici.
Godine 1959. Backus je razvio gramatička pravila za opisivanje sintakse jezika visoke razine (Backus-Naur normalni oblik, skraćeno BNF).
Godine 1976. John Backus je nagrađen Nacionalnom medaljom za doprinos znanosti, a od 1991. prestaje se baviti informatikom.

Vladimir Buslaev

OCR: fir-vst, 2016

Vrhunski povezani članci