Cum se configurează smartphone-uri și PC-uri. Portal informativ

Limbajul de programare Fortran. zombie

Ministerul Educației și Științei al Federației Ruse

Universitatea Federală Ural

numit după primul președinte al Rusiei

BAZELE PROGRAMĂRII

ÎN LIMBA FORTRAN

Tutorial

Ekaterinburg

Introducere. 3

Referință istorică. 5

Structura programului .. 8

Diferențele dintre Fortran 90 și Fortran 77.11

Acces la resurse de calcul. 15

Rularea sarcinilor pe un cluster. 17

Rescrieți textele programului pe server. 17

Compilare de programe. 17

Lansarea programului în cont. nouăsprezece

Tipuri de date. 22

Constanta intreaga. 22

O constantă reală. 23

Dublă precizie reală constantă. 23

Constanta complexa. 23

Constanta complexa de dubla precizie. 24

constantă booleană. 24

Constanta text. 24

Operatori de descriere a tipurilor de date. 26

INTEGER de tip întreg. 26

PRECIZIE REALĂ și DUBLĂ de tip real. 27

COMPLEX și DUBLE COMPLEX tip complex. 28

CARACTER este un tip de caracter. 29

LOGIC tip boolean. 29

DIMENSIUNEA matricelor. treizeci

PARAMETRE Atribut .. 32

Varietăți de tipuri de date încorporate. 35

Expresii, operații și sarcini. 36

Expresii aritmetice. 36

Expresii de atitudine. 37

Expresii booleene. 38

Reguli de evaluare a expresiei. 38

Operatori de intrare/ieșire. 39

Operator de intrare DATE .. 39

Instrucțiunea de intrare READ .. 40

Instrucțiunea de ieșire WRITE. 41

Operatorul de inferență activat Captură de ecran. 42

Declarație de specificație a formatului de intrare/ieșire (FORMAT) 43

Specificații X, T. 43

Specificatorul I 44

Separatoare. 45

Specificația F. 46

Repetoare. 49

Specificația E. 50

Specificația G .. 51

Descriptori de date. 52

Operatori de condiție. 53

Operatorul logic al condiției. 53

Operator condițional aritmetic. 57

SELECTARE CAZ. 60

Operatori de buclă. 62

Operator buclă DO .. 62

Operatorul de buclă DO WHILE. 64

Opriți operatorul STOP. 65

Instrucțiunea de ieșire în buclă EXIT. 66

Operatori de tranziție. 67

GOTO .. ​​​​67 operator de sărituri de cuvânt cu magistrală

Operator de sucursală calculat GOTO .. ​​​​67

Operator de ramură condiționat IF ... GOTO .. ​​​​68

Lucrul cu matrice. 69

Intrarea de matrice. 69

Afișarea matricelor. 71

Prelucrarea matricelor. 73

Subprograme .. 76

Operator de funcție. 78

Funcția de subrutină FUNCȚIE .. 81

Procedura subrutine SUBRUTINĂ. 83

Lucrați cu fișiere externe. 85

Operatorul de deschidere fișier OPEN .. 85

CLOSE instrucțiune de închidere a fișierului. 86

Exemple de lucru cu fișiere. 86

Literatură. 89

Introducere

O trăsătură caracteristică a computerelor paralele este capacitatea utilizare simultană pentru prelucrarea informatiilor un numar mare procesoare. Aplicarea multiprocesorului sisteme de calcul(MVS) pune două sarcini pentru construirea algoritmilor paraleli: paralelizarea existentelor algoritmi secventialiși crearea de noi algoritmi cu accent pe sistemele de calcul paralele.

Cea mai comună tehnologie de programare pentru calculatoarele paralele cu memorie distribuită este în prezent MPI. Principala modalitate de interacțiune a proceselor paralele în astfel de sisteme este de a transmite mesaje unul altuia. Acest lucru se reflectă în numele acestei tehnologii - Message Passing Interface. Standardul MPI fixează interfața care trebuie respectată atât de sistemul de programare de pe fiecare platformă de calcul, cât și de către utilizator la crearea programelor. Biblioteca de comunicații MPI a devenit un standard general acceptat în programarea paralelă folosind mecanismul de transmitere a mesajelor.

Un program MPI este un set de procese independente, fiecare dintre ele realizează propriile sale program propriu(nu neapărat la fel) scris în C sau FORTRAN.În FORTRAN, majoritatea procedurilor MPI sunt subrutine (numite de Declarație CALL), iar codul de eroare este returnat printr-un cod suplimentar ultimul parametru proceduri. Mai multe proceduri, concepute ca funcții, nu returnează un cod de eroare. Nu sunt necesare majuscule stricte în numele subrutinelor și constantelor numite. Matricele sunt indexate de la 1. Obiectele MPI, care sunt structuri în C, sunt reprezentate în FORTRAN ca și tablouri de tip întreg.

IMM este programat în FORTRAN. Principala dificultate în utilizarea acestuia pentru sarcini mari este coordonarea interacțiunii părților unei sarcini mari. Fortran 90 include mecanisme pentru interacțiunea obiectelor în conformitate cu tehnologia de programare orientată pe obiecte, care facilitează munca în echipă pe mare proiect... Acestea sunt module pentru proiectarea de biblioteci, structuri și tipuri de date derivate pentru organizarea datelor complexe, aceasta este o alocare dinamică a memoriei, precum și o serie de mecanisme pentru procesarea matricelor, inclusiv formarea diferitelor felii (secțiuni). Posibilitatea de a combina într-o singură familie (în gen) proceduri standard de procesare care diferă în tipurile argumentelor lor poate fi unealtă folositoareîntr-o varietate de sarcini. Tipurile (familiile) de tipuri de date vă permit să personalizați cu ușurință implementarea unui tip ținând cont de proprietățile hardware-ului (de exemplu, un tip INTEGER poate fi declarat lung sau scurt prin controlul de vizualizare KIND). Unele reguli de stil pot ajuta la proiectare, de exemplu, declararea parametrilor de intrare, de ieșire și modificabili ai unei proceduri vă poate ajuta să găsiți erori de interoperabilitate. Regulile de scriere a proprietăților datelor, comentariilor și altor elemente facilitează citirea programelor scrise, ceea ce grăbește căutarea erorilor.

Referință istorică

1954 - IBM, traducătorul de prima limbă Fortran.

1958 - FortranII.

1962 - FortranIV.

1966 - Fortran 66.

1978 - Fortran 77.

A fost numită o modificare a limbii Fortran, care a apărut în 1958 FortranIIși conținea conceptul de subrutine și variabile partajate pentru a asigura comunicarea între segmente.

Până în 1962, apariția limbii cunoscute ca Fortran IV... În 1966, dezvoltarea standardului american pentru limba ANSI (American National Standards Institute) a fost finalizată, limba se numește Fortran 66... În 1978, a fost dezvoltată a doua versiune a standardului ANSI - limbajul Fortran 77 inclusiv elemente programare structurată de exemplu, IF structurat, tipuri de caractere.

A treia versiune a standardului ANSI este Fortran 90, realizată în 1991. Fortran 90 este dezvoltarea limbajului Fortran 77 deci un program scris în Fortran 77, poate fi compilat și rulat ca program în Fortran 90... Standard Fortran 90 Standard introduce multe noi facilitati pentru operatii pe matrice, noi metode de specificare a preciziei, format liber cod sursa, recursivitate, matrice dinamice etc.

Programe pentru limba actuală standard Fortran 77 poate fi compilat cu succes de către compilatori Fortran 90 fara nici o modificare. Cu toate acestea, structura unui program în limbaj Fortran 90 poate diferi semnificativ de structura unui program echivalent pe Fortran 77... Programatorul trebuie să se ferească de amestecarea celor două stiluri.

În egală măsură, compilatorul cu Fortran 90 impune furnizarea de explicații pentru raportarea unor coduri de nepotrivire (nepotrivire), adică utilizarea de operatori sau variabile care sunt permise dincolo de setul de reguli din afara standardului.

Fortran ocupă locul de mândrie printre limbile moderne programare. Este unul dintre primele limbaje de programare nivel inaltși încă de la începuturile sale, a fost conceput pentru a rezolva probleme complexe de calcul. Fortran a fost inițial întâmpinat cu scepticism în rândul programatorilor aplicați, deoarece se credea că costul programării într-un limbaj de nivel înalt ar avea o pierdere semnificativă a vitezei de calcul. Când vine vorba de modelarea proceselor complexe sau procesarea unor cantități mari de informații, viteza de calcul este un factor decisiv în determinarea alegerii limbajului, platformei de calcul și tehnologiei de programare.

Printre oamenii de știință, de exemplu, există o astfel de vorbă că oricare problema de matematica are deja o soluție în FORTRAN și, într-adevăr, puteți găsi printre mii de pachete Fortran atât un pachet pentru înmulțirea matricelor, cât și un pachet pentru rezolvarea ecuațiilor integrale complexe și multe, multe altele. O serie de astfel de pachete au fost create de-a lungul deceniilor și sunt populare în comunitatea științifică până în prezent, de exemplu - IMSL ( Engleză).

Majoritatea acestor biblioteci sunt de fapt proprietatea omenirii: sunt disponibile în coduri sursă, bine documentate, depanate și foarte eficiente. Prin urmare, este costisitor să le schimbați, cu atât mai puțin să le rescrieți în alte limbaje de programare, în ciuda faptului că se încearcă în mod regulat convertirea automată a codului FORTRAN în limbaje de programare moderne.

Fortran modern (Fortran 95 și Fortran 2003) a dobândit caracteristicile necesare pentru programarea eficientă pentru noile arhitecturi de calcul, permite utilizarea tehnologiilor moderne de programare, în special, OOP.

Evoluția standardelor lingvistice

Fortran este un limbaj foarte standardizat, motiv pentru care este ușor de portat platforme diferite... Noile standarde de limbaj păstrează în mare măsură continuitatea cu cele mai vechi, ceea ce permite utilizarea codurilor programelor scrise anterior și modificarea acestora.

FORTRAN 66 (1972) Bazat pe standardul IBM FORTRAN IV FORTRAN 77 (1980) A introdus multe îmbunătățiri: Fortran 90 (1991) Standardul lingvistic a fost revizuit semnificativ. Fortran 95 (1997) Corectarea standardului anterior. Operatorul și construcția FORALL au fost introduse, permițând mai multă flexibilitate decât operatorul și constructul WHERE pentru a atribui matrice și înlocui buclele voluminoase. FORALL vă permite să înlocuiți orice atribuire de secțiuni sau operatorul și clauza WHERE, în special, oferă acces la diagonala matricei. Acest operator considerat promițător în calculul paralel, contribuind la o paralelizare mai eficientă decât buclele. Fortran 2003 (2004) Dezvoltare în continuare Suport OOP în limbă. Interacțiunea cu sistemul de operare. Adăugat de asemenea următoarele posibilități: Fortran 2008 (2010) Standardul presupune suport prin intermediul limbajului de calcul paralel (Co-Arrays Fortran). De asemenea, ar trebui să mărească dimensiunea maximă a tablourilor la 15, să adauge funcții matematice speciale încorporate etc.

Compilatoare

De la dezvoltarea inițială a limbajului, compilatoarele Fortran au fost fabricate de IBM. În prezent, IBM furnizează compilatorul de optimizare VS Fortran pentru mainframes-urile IBM System z, a cărui istorie a dezvoltării diferitelor versiuni datează din 1964, precum și compilatorul XL Fortran pentru platforme bazate pe arhitectura PowerPC - AIX, Linux și supercomputerul Blue Gene (o versiune pentru Mac OS X când computerele Macintosh foloseau procesoare PowerPC). Ambele aceste compilatoare conțin optimizatori foarte sofisticați care rezultă din continuu munca stiintifica Specialiști IBM de o jumătate de secol. Pe baza compilatorului IBM Fortran XL, Absoft, un partener de afaceri IBM, a creat și furnizează compilatorul Absoft Pro Fortran pentru sisteme bazate pe PowerPC (Linux, Mac OS X) și Intel (Linux, Mac OS X, Windows) procesoare.

Fundație gratuită software GNU a lansat un compilator open source Fortran-77 g77, disponibil pentru aproape orice platformă și complet compatibil cu GCC. Acum a fost înlocuit de compilatorul GFortran, care implementează aproape toate construcțiile standardului Fortran-95 și multe construcții ale standardelor Fortran-2003 și Fortran-2008. De asemenea, este complet compatibil cu Fortran 77. Există, de asemenea, un proiect independent g95 pentru a crea un compilator Fortran-95 bazat pe GCC.

Caracteristicile și structura programului

Fortran are un set destul de mare de încorporate functii matematice, acceptă lucrul cu numere întregi, reale și numere complexe precizie ridicata. Mijloacele de expresie ale limbii au fost inițial foarte slabe, deoarece Fortran a fost una dintre primele limbi de nivel înalt. Mai târziu, la Fortran au fost adăugate multe construcții lexicale tipice programării structurale, funcționale și chiar orientate pe obiecte.

Card perforat cu marcaje pe coloană pentru Fortran.

Structura programelor s-a concentrat inițial pe introducerea de la carduri perforate și avea o serie de proprietăți convenabile pentru acest caz particular. Deci, prima coloană a servit pentru a marca textul ca comentariu (simbol C), de la 1 la 5 a fost zona marcajelor, iar de la 7 la 72 a fost textul propriu-zis al operatorului sau al comentariului. Coloanele de la 73 la 80 puteau fi folosite pentru numerotarea cărților (pentru a restabili un pachet împrăștiat aleatoriu) sau pentru un scurt comentariu, acestea au fost ignorate de traducător. Dacă textul operatorului nu s-a încadrat în spațiul alocat (de la a 7-a la a 72-a coloană), a fost pus un semn de continuare în coloana a 6-a a cardului următor, iar apoi operatorul a continuat pe el. Era imposibil să plasați doi sau mai mulți operatori pe o linie (hartă). Pe măsură ce cărțile perforate au intrat în istorie, aceste virtuți s-au transformat în inconveniente serioase.

De aceea în standardul Fortran, începând cu Fortran 90, pe lângă formatul fix text sursă a apărut un format liber, care nu reglementează poziția liniei și, de asemenea, vă permite să scrieți mai mult de un operator pe linie. Introducerea formatului liber a permis crearea unui cod, a cărui lizibilitate și claritate nu este inferioară codului creat folosind alte limbaje de programare moderne, precum sau Java.

Drăguț " carte de vizită„Fortranul vechi” este un număr mare de etichete care au fost folosite atât în ​​ramura necondiționată GOTO, cât și în instrucțiunile buclei, cât și în instrucțiunile care descriu formatul de intrare/ieșire FORMAT. Numărul mare de etichete și declarații GOTO au făcut adesea programele Fortran dificil de înțeles.

Această experiență negativă a devenit motivul pentru care într-o serie de limbaje de programare moderne (de exemplu, Java), etichetele și operatorii de salt necondiționați asociați au fost modificați foarte mult.

Cu toate acestea, Fortran modern scapă de excesul de etichete datorită introducerii unor operatori precum DO ... END DO, DO WHILE, SELECT CASE. În plus, numai în standardele de limbă modernă operator clasic GOTO, care este încă folosit în multe limbi astăzi. Instrucțiunea GOTO calculată, precum și constructul ENTRY - intrări multiple în proceduri au fost eliminate.

De asemenea, caracteristicile pozitive ale Fortranului modern includ un numar mare de operațiuni de matrice încorporate și suport flexibil pentru matrice cu indexare neobișnuită. Exemplu:

Real, dimensiune (:,:) :: V ... alocă (V (- 2: 2, 0: 10)) ! Alocați memorie pentru o matrice ai cărui indici pot ! variază de la -2 la 2 (primul indice) ! iar de la 0 la 10 - al doilea... V (2, 2: 3) = V (- 1: 0, 1) ! Rotiți o porțiune dintr-o matrice scrie (*, *) V (1,:) ! Tipăriți toate elementele matricei V al căror prim indice este 1. dealocarea (V)

Salut Lume!

Format fix (caracterele „” sunt folosite pentru a separa spațiile la pozițiile liniilor de la 1 la 6):

␣␣␣␣␣␣PROGRAM salut ␣␣␣␣␣␣PRINT *, „Bună, lume!” ␣␣␣␣␣␣ÎNCHEIAȚI

Format gratuit:

Program hello print *, „Hello, World!” Sfârșit

Observatii.

  • Declarația PROGRAM este opțională. Strict vorbind, singurul operator necesar al unui program Fortran este Declarație END.
  • Alegerea literelor mari sau mici pentru scrierea instrucțiunilor programului este arbitrară. Din punct de vedere standarde moderne Limba Fortran, setul de litere mari și setul de litere mici coincid la scrierea operatorilor de limbă.

Interacțiunea cu alte limbi

Multe sisteme de programare permit legarea fișierelor obiect obținute ca urmare a traducerii unui program Fortran cu fișierele obiect obținute de la compilatoare din alte limbaje, ceea ce face posibilă crearea unor aplicații mai flexibile și mai multifuncționale. Pentru limbajul Fortran, sunt disponibile și un număr mare de biblioteci, care conțin atât subrutine pentru rezolvarea problemelor clasice de calcul (LAPACK, IMSL, BLAS), sarcini pentru organizarea calculului distribuit (MPI, pvm), cât și sarcini pentru construirea de interfețe grafice (Quickwin, FORTRAN / TK) sau acces la DBMS (Oracle).

Fortran în URSS

Note (editare)

  1. Vezi, de exemplu: Depozitul Netlib la UTK și ORNL
  2. A. M. Gorelik. Evoluția limbajului de programare Fortran (1957-2007) și perspectivele dezvoltării acestuia // Metode de calcul și programare, 2008, V. 9, p. 53-71
  3. Bartenev O.V. Fortran modern. - M .: Dialogue MEPhI, 2005. - ISBN 5-86404-113-0
  4. A. M. Gorelik. programarea orientată pe obiecte în Fortran modern
  5. S. D. Algazin, V. V. Kondrat'ev. Programare vizuală Fortran. - M .: „Dialog MEPhI”, 2008. - 448 p. - ISBN 5-8243-0759-8
  6. Stiri Gorelik A. M.
  7. VS FORTRAN
  8. XL Fortran pentru Linux
  9. Absoft Pro Fortran Compiler Suites Prezentare generală
  10. Sun Studio - Benchmarks
  11. Eseu de Alexander Rastorguev despre apariția lui Fortran la Dubna
  12. Istoria graficii pe computer în Rusia

Literatură

  • Fortran. Manualul de referință al programatorului. Sistemul de codare automată Fortran pentru IBM 704 EDPM. - IBM Corp. 1956. - 51 p.
  • ISO / IEC 1539-2: 2000 Tehnologia informației - Limbaje de programare - Fortran - Partea 2: Șiruri de caractere cu lungime variabilă
  • Robert W. Sebesta. 2.3. Calculator IBM 704 și limbajul Fortran // Concepte de bază ale limbajelor de programare = Concepte ale limbajelor de programare / Per. din engleza - Ed. a 5-a. - M .: Williams, 2001 .-- S. 63-69. - 672 s. - 5000 de exemplare. - ISBN 5-8459-0192-8 (rusă), ISBN 0-201-75295-6 (engleză)

Legături

  • gfortran - compilatorul Fortran 95/2003/2008, parte a colecției de compilatori GNU
  • în Protopedia - Enciclopedia limbajelor de programare (rusă)

Limbajul de programare Fortran este folosit în primul rând pentru calculul științific. Inventat în 1954, este limba cea mai veche programare la nivel înalt, urmată de Lisp (1958), Algol (1958) și COBOL (1959). Numărul de biblioteci științifice scrise în Fortran și crearea unor traducători-compilatoare speciali permit ca limbajul să fie folosit astăzi. În plus, au fost create mai multe calculatoare pentru vectorizare, coprocesoare, paralelism, care au intercalat acest limbaj pentru utilizare în producția industrială. lumea modernă.

John Backus, un inginer radio IBM, a publicat articole în 1954 sub titlurile „Raport preliminar”, „Specificații pentru sistemul IBM Matmal Transmula TRANslating”, care au dat naștere termenului FORTRAN. Apoi a fost nevoie de încă doi ani de efort din partea întregii echipe, pe care a condus-o, pentru a scrie primul compilator Fortran (25.000 de linii pentru IBM 704).

Numele limbii a fost scris inițial cu litere mari FORTRAN și a fost folosit pentru a desemna versiuni lingvistice până la Fortran 77, spre deosebire de versiuni gratuite sintaxă începând cu Fortran 90. În standardul Fortran 77, literele mici nu fac parte din limbaj, dar majoritatea compilatoarelor le acceptă în plus față de standard.

Fortran este limbajul de programare dominant folosit astăzi în aplicațiile de inginerie. Prin urmare, este important ca inginerii absolvenți să poată citi și modifica codul Fortran. Din când în când, așa-zișii experți prevăd că limba își va pierde popularitatea și în curând va înceta să fie folosită.

Aceste predicții au eșuat întotdeauna. Fortran este cel mai robust limbaj de programare din istorie. Unul dintre principalele motive pentru care limbajul de programare Fortran a supraviețuit și va supraviețui este inerția software. După ce o companie a cheltuit o mulțime de resurse și posibil milioane de dolari pentru un produs software, este puțin probabil ca acesta să traducă software-ul într-o altă limbă.

Principalul avantaj al Fortran este că este standardizat de către organismele internaționale ANSI și ISO. Prin urmare, dacă programul este scris în ANSI, atunci va rula pe orice computer cu un compilator Fortran 77. Informații importante... Astfel, programele sunt obiect limbaj orientat Programarea Fortran există în diferite dispozitive software.

Etapele creării unei platforme lingvistice:

  1. În 1954-1957, primul compilator a fost dezvoltat de la zero. Pe vremea aceea nu existau „limbaje de nivel înalt” (= HLL), majoritatea sistemelor de operare erau simple, iar memoria era mică, cam de 16 Kb. Primul compilator a rulat pe IBM 704. Acest HLL era mult mai eficient decât programarea de asamblare și foarte popular în zilele sale.
  2. FORTRAN II a fost publicat în 1958. În același an, FORTRAN III a fost dezvoltat, dar nu a fost niciodată lansat în producție pe scară largă.
  3. FORTRAN IV a fost creat în 1961. Acesta conținea îmbunătățiri, cum ar fi implementarea declarațiilor COMUNE și ECHIVALENCE.
  4. În 1962, ASA a început să dezvolte un standard pentru limbajul de programare orientat pe obiecte Fortran. Acest lucru a permis vânzătorului să-l folosească în fiecare computer nou. Și acest fapt a făcut-o și mai populară HLL, limbajul a devenit disponibil în Sistemele Appleși TRS80.
  5. În 1967, a fost lansat FORTRAN 66, primul standard HLL din lume. Publicarea standardului a însemnat că limbajul a fost implementat mai pe scară largă decât oricare altul. Până la mijlocul anilor 1970, aproape fiecare computer, mini sau mainframe era echipat cu limbajul standard FORTRAN 66. Limbajul folosit pentru instrucțiuni if, instrucțiuni goto și programe spagethi. Această programare structurată a devenit populară în anii 60 și 70.
  6. Fortran a existat pe cărțile perforate, în special cu sistemul FMS, optimizând aspectul surselor sale până când Fortran 90 a introdus o sintaxă „liberă”. În el, codul matricei Fortran începe din a 7-a coloană și nu trebuie să depășească 72 de mii de caractere.

De asemenea, trebuie remarcat faptul că înainte de Fortran 90, spațiile albe nu contau între coloana a 7-a și a 72-a. Astfel, ciclul „DO I = 1,5” poate fi scris și „DOI = 1,5”. Pe de altă parte, „DO I = 1,5” este echivalent cu „DOI = 1,5”.

Numeroase coduri industriale au fost scrise în Nastran, NAG și biblioteca IMSL-Fortran. Compatibilitatea versiunilor mai noi cu versiunile anterioare este importantă. Din acest motiv, Fortran 90 este pe deplin compatibil cu Fortran 77. Cu toate acestea, următoarele versiuni incompatibilitățile standard au fost deja introduse.

Au urmat în curând limbile mai avansate Fortran 90 și Fortran 95, actualizate la standardul actual Fortran-2003. În ciuda faptului că compilatoarele moderne funcționează pe termen nelimitat în toate versiunile actuale de Windows și chiar acceptă procesoare pe 64 de biți. Între timp, producătorii au recunoscut tendințele vremurilor și oferă compilatoare pentru Linux sub forma limbajului de programare orientat pe obiecte Actor Fortran.

Condiții preliminare pentru utilizarea limbajului de programare

Trebuie să înțelegeți că Fortran este încă un limbaj de programare utilizat pe scară largă și este folosit în principal în domeniul descoperirii. Aplicații clasice, cum ar fi fizica sau inginerie, unde se efectuează calcule matematice extinse și complexe. Bibliotecile de matematică extinse care există pentru diferite compilatoare sunt foarte utile în ele. Pentru a rezuma, se poate argumenta că Fortran este folosit și astăzi din mai multe motive:

  • Numeroase biblioteci funcționale s-au dezvoltat de-a lungul anilor.
  • Prezența software-ului în Fortran, care necesită resurse foarte importante pentru dezvoltare, atunci când se consideră prea scumpă trecerea la o altă limbă.
  • Având compilatoare puternice cu funcții Fortran încorporate care produc foarte rapid fișiere executabile.
  • Limbajul este mai accesibil unui inventator care nu a avut un curs specializat de informatică.

Multe programe științifice sunt acum scrise în C și C ++, compilatoare pentru care sunt disponibile pe majoritatea mașinilor. Alte limbaje compilate sunt uneori folosite pentru calculul științific și în special pentru programe precum Scilab sau Matlab. Acesta din urmă include și bibliotecile BLAS și LAPACK dezvoltate în Programare Fortran... Matlab a fost inițial un program Fortran distribuit universităților și centrelor de cercetare.

Deși Tom Lahey este acum „singurul” compilator general, Lahey Computer Systems continuă să fie folosit de mulți programatori. Lahey lucrează cu Fujitsu de câțiva ani, Lahey se concentrează pe analizatorul Fortran și Fujitsu pe generatorul de cod. Actualul Compiler Suite pentru Windows se numește Lahey Fujitsu Fortran 95 (LF95) și este disponibil în versiuni diferite, dintre care unele se integrează și cu Studio vizual.NET 2003.

Există, de asemenea, o versiune ieftină a LF95 Express fără propriul IDE. Versiunea actuală este 7.1. pe Linux este apelat de compilatorul Lahey / Fujitsu Fortran 95 v6.2 pentru Linux și este disponibil în două versiuni diferite. De exemplu, versiunea Pro include compatibilitatea OpenMP v2.0, un motor grafic simplu Winteracter Starter Kit, biblioteca de matematicași biblioteca stiintifica Rutine Fujitsu 2.

Un alt producător este Absoft. Compilatoarele și C++ există nu numai pentru Windows și Linux, ci și pentru OS X pe Macintosh. Aceste compilatoare sunt de interes pentru dezvoltatorii care au nevoie sau doresc să accepte toate cele trei platforme. Din păcate, Absoft diferențiază între versiunile pe 32 și 64 de biți pentru Linux, utilizând în prezent versiunea 10.0 a Fortran 95 pentru Linux pe 64 de biți.

EKOPath Compiler Suite este relativ nouă pe piață. Este format din compilatoare C ++ și mediul de dezvoltare Fortran pentru Linux, care sunt, de asemenea, disponibile separat și sunt destinate în principal utilizatorilor AMD pe 64 de biți. De asemenea, rulează pe Intel EM64T. De asemenea, Microsoft a încercat odată să găsească o „piață ieftină” pentru Fortran și a adus pe piață Microsoft Powerstation.

Piața poate să fi fost prea mică pentru gigantul software, dar Digital a preluat o parte din cod în 1997 și și-a valorificat experiența cu compilatoarele Digital Unix și OpenVMS. A fost nașterea Digital Visual Fortran, încă foarte de succes. La un moment dat, Digital s-a mutat apoi la Compaq, compilatorul a fost îmbunătățit Versiune curentă Compaq Visual Fortran (CVF) v6.6.

Pe lângă platformele „normale” pe 32 de biți, există diverse compilatoare pe 64 de biți, precum cele pentru Intel Itanium și Intel EM64T. Deși nu sunt „urgente” pentru domeniul de livrare, ele sunt disponibile pentru descărcare gratuită prin intermediul sistemului web. Suport Intel Premier.

După o singură înregistrare, oarecum greoaie, îl puteți folosi timp de un an, cu actualizări noi la fiecare câteva săptămâni. Chiar și versiunile mai vechi vor rămâne disponibile.

Un program Fortran este o succesiune de linii de text. Textul trebuie să respecte o anumită sintaxă. De exemplu: un cerc cu raza r, aria c.

Acest program citește raza realăși determină aria unui cerc cu raza r:

„Raza r:” se citește (*, *) r;

aria = 3,14159 * r * r;

scrie (*, *) „Zona =";

Rândurile care încep cu „C” sunt comentarii și nu au alt scop decât acela de a face programul mai ușor de citit pentru oameni. Inițial, toate programele Fortran erau scrise cu litere mari. Majoritatea programatorilor scriu acum litere mici, deoarece sunt mai lizibile.

Un program Fortran constă de obicei dintr-un program sau driver principal și mai multe subrutine, proceduri sau subrutine. Structura principală a programului:

  • denumirea programului;
  • declarații;
  • declarații;
  • Stop;
  • sfarsit.

Textul italic nu trebuie luat ca text literal, ci mai degrabă ca descriere generala... Instrucțiunea stop este opțională și poate părea exagerată, deoarece programul se va opri oricum când ajunge la sfârșit, dar se recomandă întotdeauna să terminați programul cu o instrucțiune stop pentru a sublinia faptul că firul de execuție este terminat.

Reguli de poziție a coloanei

Fortran 77 nu este un limbaj cu format liber, dar are un set foarte strict de reguli pentru formatarea codului sursă. Cel mai reguli importante sunt regulile de aranjare a coloanei:

  • col. 1: gol sau „c” sau „*” pentru comentarii.
  • col. 2-5: eticheta operatorului.
  • col. 6: continuare linia anterioară.
  • col. 7-72: declarație.
  • col. 73- 80: Numărul secvenței.

O linie Fortran care începe cu litera „c” sau un asterisc în prima coloană este un comentariu. Comentariile pot apărea oriunde în program. Bine scrise, sunt esențiale pentru lizibilitatea unui program. Codurile comerciale Fortran conține adesea aproximativ 50% din comentarii. Este posibil să întâlniți și programe care utilizează Semn de exclamare(!). Acest lucru este foarte nestandard în Fortran 77, dar este permis în Fortran 90.

Semnul exclamării poate apărea oriunde pe linie. Uneori, declarația nu se încadrează pe o singură linie, atunci puteți împărți declarația în două sau mai multe rânduri și puteți utiliza un caracter de continuare în poziție.

  1. C23456789 - Aceasta demonstrează poziția coloanei.
  2. „C” - următorul operator trece prin două zone linii fizice.
  3. Aria = 3,14159265358979+ * r * r.

Spațiile goale sunt ignorate începând cu Fortran 77. Prin urmare, dacă eliminați toate spațiile albe din Fortran 77, programul este încă corect din punct de vedere sintactic, deși aproape imposibil de citit pentru operatori.

Numele variabilelor din Fortran sunt selectate din 1-6 caractere literele a-zși numerele 0-9. Primul caracter trebuie să fie o literă. Fortran 90 permite nume variabile de lungime arbitrară. Fortran 77 nu face nicio distincție între top și litere mici, de fapt, presupune că toate intrările sunt majuscule. Cu toate acestea, aproape toate compilatoarele F 77 vor accepta litere mici. Fiecare variabilă trebuie definită în declarație. Aceasta setează tipul variabilei. Cele mai comune liste de variabile sunt:

  • întreg;
  • real;
  • precizie dubla;
  • complex;
  • logic;
  • caracter.

Lista de variabile trebuie să fie separate prin nume. Fiecare variabilă trebuie declarată exact o dată. Dacă variabila nu este declarată, F 77 folosește un set de reguli implicite pentru a stabili tipul. Aceasta înseamnă că toate variabilele care încep cu literele „în” sunt numere întregi, iar toate celelalte sunt reale. Multe programe mai vechi F 77 folosesc aceste reguli implicite, dar programatorii nu ar trebui să facă acest lucru, deoarece probabilitatea erorilor de program crește dramatic dacă declară variabile în mod inconsecvent.

Fortran 77 are un singur tip pentru variabile întregi. Numerele întregi sunt de obicei stocate ca variabile pe 32 de biți (4 octeți). Prin urmare, toate variabilele întregi trebuie să ia valori în intervalul [-m, m], unde m este aproximativ 2 * 10 9.

F 77 are două tipuri diferite pentru variabile în virgulă mobilă numite precizie dublă reală. Unele calcule numerice necesită o precizie foarte mare și trebuie utilizată precizia dublă. De obicei real este o variabilă de 4 octeți și precizia dublă este de 8 octeți, dar aceasta depinde de mașină.

Versiunile nestandard ale Fortran folosesc sintaxa reală * 8 pentru a desemna variabile cu virgulă mobilă de 8 octeți. Unele constante apar de multe ori în program. Prin urmare, este indicat să le definiți o singură dată, la începutul programului. Operatorul parametru este utilizat pentru aceasta. De asemenea, face programele mai lizibile. De exemplu, un program pentru zona unui cerc ar trebui scris astfel.

Sintaxa operatorului parametrilor (nume = constantă, ..., nume = constantă). Reguli pentru operatorul de parametri:

  1. O „variabilă” definită într-o instrucțiune de parametru nu este o variabilă, ci o constantă a cărei valoare nu se poate schimba niciodată.
  2. „Variabilă” poate afișa cel mult un operator de parametru.
  3. Parametrul operator trebuie să fie înaintea primului operator executabil

Câteva motive bune pentru a folosi un parametru - ajută la reducerea numărului de greșeli de scriere, este ușor să schimbați o constantă care apare de multe ori într-un program.

Expresiile booleene pot avea doar valoarea .TRUE. sau .FALSE. și poate fi generat prin comparație folosind operatori relaționali.

Nu puteți folosi simboluri precum „<» или «=» для сравнения в F 77, но можно использовать правильную двухбуквенную аббревиатуру, заключенную точками. Однако такие символы разрешены в Fortran 90.

Expresiile booleene pot fi combinate cu operatori logici „ȘI”, „SAU”, „NU”, care au o semnificație evidentă. Valorile de adevăr pot fi stocate în variabile booleene. Sarcina este aceeași cu cea aritmetică.

Exemplu: a logic, ba = .TRUE.b = a .ȘI. 3 .LT. 5/2

Ordinea de prioritate este foarte importantă. Regula este că mai întâi se evaluează expresiile aritmetice, apoi operatorii relaționali și, în final, operatorii logici. Prin urmare, lui b i se va atribui .FALSE. În exemplul de mai sus, valorile booleene sunt rareori folosite în Fortran, dar sunt adesea folosite în declarații condiționate, cum ar fi instrucțiunea „dacă”.

Constantă și misiune

Cea mai simplă formă de exprimare este constantă. Există 6 tipuri de constante care corespund a 6 tipuri de date. Iată câteva constante întregi: 10-10032767 + 15

Constante reale: 1.0-0.252.0E63.333E-1.

Notația E înseamnă că trebuie să înmulți constanta cu 10, mărită la puterea după „E”. Prin urmare, 2.0E6 este de două milioane și 3.333E-1 este aproximativ o treime pentru constantele care sunt mai mari decât cea mai mare reală permisă sau care necesită precizie ridicată, trebuie utilizată precizia dublă. Notația este aceeași ca pentru constantele reale, cu excepția faptului că „E” este înlocuit cu „D”.

Exemplu: 2.0D-11D99.

Aici 2.0D-1 reprezintă o precizie dublă cu o cincime, în timp ce 1D99 este una urmată de 99 de zerouri.

Următorul tip este constantele complexe. Ele sunt notate printr-o pereche de constante (întregi sau reale) separate prin virgule și cuprinse între paranteze.

Exemple sunt: ​​(2, -3) (1.9.9E-1). Primul număr denotă partea reală, iar al doilea partea imaginară.

Al cincilea tip este constanta booleană. Ele pot avea doar unul dintre cele două semnificații:

Rețineți că punctele care conțin litere trebuie scrise.

Ultimul tip este constanta caracterelor. Ele sunt folosite cel mai adesea sub forma unui tablou de caractere numit șir. Ele constau dintr-o succesiune arbitrară de caractere cuprinse între apostrofe (ghilimele simple):

"Orice merge!"

"Este o zi frumoasă"

Constantele șirurile și caracterele sunt sensibile la majuscule și minuscule. Problema apare atunci când trebuie să aveți un apostrof adevărat în șirul propriu-zis. În acest caz, trebuie să dublezi apostroful: „Este” „o zi frumoasă”, ceea ce înseamnă „Ce zi minunată”.

Instrucțiunile condiționate sunt componente esențiale ale oricărui limbaj de programare. Cea mai comună astfel de declarație în Fortran este declarația „dacă”, care de fapt ia mai multe forme.

Cea mai simplă este expresia logică „dacă” din descrierea Fortran: if (expresie logică) instrucțiune executabilă.

Acest lucru ar trebui scris pe o singură linie, de exemplu, când definiți valoarea absolută a lui x:

dacă (x .LT. 0) x = -x

Dacă trebuie să fie executată mai mult de o instrucțiune într-un „dacă”, atunci trebuie utilizată următoarea sintaxă: if (expresie logică) thenstatementsendif.

Fluxul de execuție este de sus în jos. Expresiile condiționate sunt evaluate secvențial până când se găsește o valoare adevărată. Apoi se execută codul corespunzător și controlul trece la următoarea instrucțiune după sfârșitul „dacă”.

Instrucțiunile If pot fi imbricate la mai multe niveluri. Este important să folosiți indentarea adecvată pentru a asigura lizibilitatea. Iată un exemplu:

dacă (x .GT. 0) atunci dacă (x .GE. y) atunci scrieți (*, *) „x este pozitiv și x> = y” altfel scrieți (*, *) „x este pozitiv dar x< y"endifelseif (x .LT. 0) thenwrite(*,*) "x is negative"elsewrite(*,*) "x is zero"endif

Programatorii ar trebui să evite imbricarea mai multor niveluri de instrucțiuni if, deoarece va fi dificil de urmat.

Poate fi utilizată orice stație de lucru Unix cu compilatorul F 77. Programatorii experimentați recomandă utilizarea fie Sun, fie Dec.

Un program Fortran este compus din text simplu care urmează anumite reguli de sintaxă. Acesta se numește cod sursă. Programatorii folosesc un editor pentru a scrie codul sursă. Cele mai comune editori de pe Unix sunt emacs și vi, dar pot fi puțin complicate pentru utilizatorii începători. Puteți folosi un editor mai simplu, cum ar fi xedit, care rulează sub X windows.

După ce este scris un program Fortran, acesta este salvat într-un fișier cu extensia „.f” sau „.for” și programul este tradus într-o formă care poate fi citită de mașină. Acest lucru se face folosind un program special numit compilator. Compilatorul Fortran 77 este denumit în mod obișnuit f77. Rezultatul compilației primește în mod implicit numele oarecum criptic „a.out”, dar puteți alege un alt nume dacă este necesar. Pentru a rula programul, introduceți pur și simplu numele fișierului executabil, de exemplu, „a.out”. Compilatorul traduce codul sursă în cod obiect, iar linkerul sau încărcătorul în fișierul executabil. După cum puteți vedea, această procedură nu este deloc complicată și este disponibilă oricărui utilizator.

Simularea este una dintre cele mai frecvent utilizate metode de fabricație și alte sisteme disponibile în fabricile moderne. Majoritatea modelelor de simulare sunt construite folosind limbajul de programare orientat pe obiecte Actor Fortran sau un pachet software de simulare scris într-un limbaj tradițional. Aceste instrumente au limitele lor. Tehnologia orientată pe obiecte a demonstrat o utilizare în creștere în multe domenii și deține promisiunea unei abordări mai flexibile și mai eficiente pentru modelarea sistemelor de afaceri.

Programarea Simula Fortran este comparată cu un limbaj de programare științific comun numit FORTRAN. Un model de simulare militar tipic este programat atât în ​​SIMULA, cât și în FORTRAN. Programul SIMULA s-a dovedit a fi cu 24% mai scurt decât versiunea FORTRAN.

Versiunea SIMULA este, de asemenea, mai simplă și oferă o imagine mai bună a modelului simulat. Pe de altă parte, timpul de rulare pentru execuțiile de producție este cu 64% mai lung cu limbajul de programare orientat obiect Simula Fortran. Cântărirea argumentelor pro și contra arată că SIMULA va fi un software din ce în ce mai profitabil, cu costuri mai mari de personal și costuri mai mici pentru computer.

CUDA arată cum dezvoltatorii de aplicații de înaltă performanță pot valorifica puterea GPU-urilor folosind Fortran, un limbaj familiar pentru calculul științific și testarea performanței supercomputerelor. Autorii nu își asumă nicio experiență anterioară cu calculul paralel și acoperă doar elementele de bază și folosesc cele mai bune practici. Eficiența de calcul a GPU-urilor care utilizează CUDA Fortran este asigurată de arhitectura GPU-ului țintă.

CUDA Fortran pentru oameni de știință și ingineri va defini bucăți de cod intensive din punct de vedere computațional și va modifica codul pentru gestionarea datelor, concurența și optimizarea performanței. Toate acestea se fac în Fortran, fără a fi nevoie să rescrieți programul într-o altă limbă. Fiecare concept este ilustrat cu exemple reale, astfel încât să puteți evalua imediat performanța codului dvs.

Poate că într-o zi o corporație globală se va „globaliza în sfârșit” și va decide că Fortran nu mai este nevoie, dar nu acum. Datorită capacităților actuale ale Fortranului modern, mulți programatori și oameni de știință văd viitorul în spatele lui. În plus, există destui producători în lume care trăiesc din dezvoltarea compilatoarelor moderne și câștigă bani frumoși din acest proces.

Am fost împins să încerc să scriu prima mea postare aici, unde vt4a2h sugerează utilizarea C ++ pentru învățare. Da, multe copii au fost sparte pe acest subiect.

Eu, ca majoritatea școlarilor din vastitatea vastei noastre Patrie Mamă, am început să înțeleg elementele de bază prin ecranul albastru, dar nu moartea, ci Turbo Pascal 7.0. A existat, desigur, Basic, pe care l-am întâlnit prima dată la vârsta preșcolară pe computerul sovietic „Electronics”. Apoi părea un editor de text ciudat, pentru că computerul a fost creat pentru jocuri prin ochii unui copil. Cu toate acestea, deja la institut m-am familiarizat cu limba Fortran, după ce am învățat care, încă mă întreb de ce nu este folosită pentru predare.

Da, mulți vor spune că limba este moartă, nu corespunde realităților moderne, iar manualele cu titlu, ca în imagine, provoacă doar un zâmbet. Voi încerca să explic de ce această limbă este atât de minunată și de ce o recomand ca primă limbă. Dacă ești interesat, bine ai venit sub cat.

Cred că baza pentru bazele programării ar trebui să fie pusă înapoi în anii de școală, cel puțin în liceu. Chiar dacă în viață un computer va fi folosit doar pentru tastarea în Word sau pentru comunicarea pe rețelele de socializare, cunoștințele minime despre ce este un algoritm și cum se structurează o secvență de acțiuni pentru a obține rezultatul dorit cel puțin nu va dăuna unui tânăr adolescent, deoarece un adult, și cel mai probabil va ajuta la formarea unei mentalități speciale.

Pentru ca lecțiile de informatică să fie o bucurie și să nu viseze în coșmaruri, elevul trebuie să înțeleagă ce face, cum o face și de ce iese așa și nu altfel. La urma urmei, de fapt, trebuie să transmiteți corect informații despre buclă și operatorul condiționat, astfel încât o persoană să poată scrie programe pe cont propriu. Mai mult, cu cât sintaxa limbajului este mai simplă, cu atât este mai ușor de înțeles logica scrierii codului. Dacă o persoană învață să compună algoritmul corect, atunci pentru programarea în alte limbi, trebuie doar să învețe sintaxa acestui limbaj, iar baza va fi deja pusă.

Ce este atât de grozav la Fortran?

Să ne întoarcem la istoria creării acestei limbi. A apărut în îndepărtații ani 50 ai secolului trecut, când computerele erau încă mari, erau puțini programatori, iar informatica nu se preda la școală și, în general, era considerată o pseudoștiință. Ceea ce era nevoie era un limbaj simplu care să ajute inginerii și oamenii de știință să „alimenteze” formulele scrise pe hârtie către computere, chiar și prin carduri perforate.

De aici și numele limbii în sine: Pentru mula Tran slator sau „traducător de formule”. Acestea. inițial, limbajul era destinat persoanelor fără pregătire specială, ceea ce înseamnă că trebuia să fie cât mai simplu.

Ei bine, creatorii au reușit în simplitate. Primul program clasic arată astfel:

Programul hw scrie (*, *) „Hello, World!” Sfârșit
Sintaxa este chiar puțin mai simplă decât Pascal, nu este nevoie să puneți la sfârșitul rândului " ; " sau " : „înainte de semnul egal. Mai mult, persoanelor cu cunoștințe minime de limba engleză nu le va fi greu să înțeleagă sensul celui mai simplu program.

Aici vreau să remarc că Fortran are mai multe revizuiri ale standardelor, dintre care principalele sunt 77 și 90 (în același timp menținând continuitatea). Fortran este cu adevărat arhaic, există o limită a lungimii liniei și este necesară indentarea începutului liniei, ceea ce poate da unui tânăr candidat programator un șoc cultural. Nu fără motiv, programele scrise în Fortran 77 au primit de la prietenul meu numele încăpător „Codul Brejnev”. Prin urmare, tot textul meu se referă la standardul de limbă 90 și mai nou.

Ca exemplu, voi da un cod pentru calcularea sumei numerelor întregi nenegative de la 1 la n, introduse de la tastatură, scris de studenta mea absolventă în timp ce îi predau programarea de la zero. Acolo am experimentat predarea Fortranului ca primă limbă. Sper că a fost bine pentru ea și că experimentul meu a fost un succes. Cel puțin ea a învățat elementele de bază în câteva lecții, dintre care prima a fost petrecută pe o prelegere despre limbă.

Program chisla implicit nici unul! Variabile întregi n, i, s! Corpul lui chisla s = 0 scrieți (*, *) „Introduceți n” citiți (*, *) n dacă (n.le.0) apoi scrieți (*, *) „Negativ sau zero” altfel face i = 1, ns = s + i sfârșit scrieți (*, *) „Suma =", s sfârșit dacă sfârșit
După cum puteți vedea, scriem codul așa cum gândim. În principiu, stagiarul nu poate avea dificultăți. Cititorul atent va întreba, desigur, ce este implicit nici unul și două asteriscuri între paranteze separate prin virgule. implicit niciunul nu ne spune că specificăm în mod explicit tipul de variabile, în timp ce fără această intrare, compilatorul va ghici tipul în sine. Primul asterisc înseamnă că intrarea și ieșirea se întâmplă pe ecran, iar al doilea înseamnă că formatul I/O este detectat automat. De fapt, un program Fortran nu pare mai complicat decât o bucată de cod scrisă mai sus.

Dar mediul software?

În școli și în orice instituție guvernamentală, se pune adesea întrebarea despre software, în special despre licențierea acestuia. Pentru că banii pentru aceste nevoi nu sunt alocați în mod special. Cel puțin pe vremea mea, era o problemă cu asta, poate acum situația s-a schimbat în bine.

Orice editor de text este potrivit pentru scrierea programelor Fortran. Dacă doriți evidențierea sintaxelor, puteți utiliza Notepad ++ (suportă doar 77 de standarde de sintaxă) sau SublimeText. Programul a fost scris, cu ce vom compila? Este simplu, poți folosi gratuit GNU Fotran. Dacă utilizarea este planificată pentru utilizare necomercială, atunci se permite să se vizeze compilatorul de la Intel, care este bine optimizat pentru procesoarele cu același nume și vine cu IDE-ul minim necesar. Acestea. pragul de intrare este foarte preferenţial.

Potrivit multor utilizatori, cel mai bun mediu de dezvoltare pentru Fortran rămâne Compaq Visual Fortran 6.6, cea mai recentă versiune a căruia a fost lansată la începutul anilor 2000. De ce s-a intamplat ca mediul bazat pe Visual Studio 6.0, care fara sa danseze cu tamburina porneste cel mult pe Windows XP 32 de biti, si are o limitare a memoriei folosite, sa aiba o asemenea popularitate in randul fortrans. Răspunsul este prezentat în figura de mai jos.

Acesta este Compaq Array Visualizer, care este un instrument foarte convenabil pentru vizualizarea matricelor 1, 2 și 3-dimensionale în procesul de depanare a unui program direct din depanator. După cum se spune, după ce l-am încercat o dată, îl mănânc acum. Cert este că Fortran este folosit acum mai ales în știință (despre care vom discuta mai târziu), în special în domeniul cu care mă ocup, și anume în fizica atmosferei. La depanarea programelor, matricele reprezintă diverse câmpuri meteorologice, cum ar fi temperatura, presiunea, viteza vântului. Este mult mai ușor să cauți o eroare în câmpurile grafice decât într-un set de numere, mai ales că de obicei știi cum ar trebui să arate aproximativ câmpul, astfel încât erorile evidente sunt tăiate instantaneu.

Din păcate, toată munca compilatorului a fost transmisă de la Compaq la Intel. Intel a susținut inițial Array Visualizer, deși acele versiuni erau deja o reflectare palidă a produsului Compaq, nu era la fel de convenabil să lucrezi cu ele ca înainte, dar cel puțin performanța minimă a fost acceptată. Din păcate, Intel a încetat să mai dezvolte noi versiuni ale Array Visualizer, renunțând la acest instrument cel mai convenabil. De aceea, comunitatea Fortran în cea mai mare parte scrie programe și le depanează pentru Compaq Visual Fortran pe Windows și lansează calcule de luptă pe serverele Linux folosind Compilatoare Intel Intel, vă rugăm să ascultați rugămințile utilizatorilor, returnați un instrument normal de redare a matricei la depanator!

Locul lui Fortran în lumea modernă

Și acum ajungem la subiectul care provoacă de obicei o discuție aprinsă cu colegii mei care folosesc Matlab, care susțin că limbajul rar descris în această postare este inutil pentru orice. Aici nu sunt de acord cu ei. Faptul este că Fortran a fost folosit din punct de vedere istoric în inginerie sau calcule științifice și, prin urmare, de-a lungul timpului, a dobândit multe biblioteci gata făcute și coduri de program pentru rezolvarea unei anumite probleme.

Codul este literalmente transmis din generație în generație și chiar bine documentat. Puteți găsi multe soluții gata făcute la ecuații ale fizicii matematice, algebrei liniare (aici ar trebui să remarcăm implementarea cu succes a lucrului cu matrici), ecuații integrale și diferențiale și multe, multe altele. Probabil că este greu de găsit o problemă din domeniul fizicii și matematicii, pentru care nu ar fi fost implementat un algoritm în limbajul Fortran. Și dacă luăm în considerare optimizarea excelentă a compilatoarelor Intel pentru procesoarele Intel, suportul pentru calculul paralel pe clustere de înaltă performanță, atunci devine clar de ce acest limbaj ocupă un binemeritat primul loc în comunitatea științifică. Cred că puteți găsi un compilator Fortran instalat pe orice supercomputer.

Majoritatea modelelor serioase, cel puțin din domeniul fizicii atmosferice, sunt scrise în Fortran. Da, da, prognoza meteo, de care toată lumea este interesată din când în când, se obține în timpul calculelor modelelor scrise în această limbă. Mai mult decât atât, limba nu este în stagnare, ci este în continuă perfecționare. Deci, după standardele 77 și 90 descrise mai devreme, au apărut noi ediții 95, 2003, 2008, al căror suport a fost introdus în compilatoarele actuale. Cele mai recente versiuni de Fortran au împrospătat oarecum vechiul limbaj testat în timp, adăugând suport pentru stilul modern, adăugând programare orientată pe obiecte, a cărei absență a fost aproape principalul atu al oponenților acestui limbaj. Mai mult, The Portland Group a lansat Compilatorul PGI CUDA Fortran, care permite calcule extrem de paralele pe plăcile video. Astfel, pacientul este mai mult decât în ​​viață, ceea ce înseamnă că programatorii Fortran rămân la cerere până acum.

În loc de postfață

Și acum aș dori să revin la subiectul ridicat inițial al predării programării și să încerc să rezum principalele avantaje ale Fortran atunci când îl aleg ca primă limbă.
  • Fortran este foarte ușor de învățat, sintaxa este de înțeles pentru o persoană neinstruită. Odată ce ai învățat elementele de bază, este ușor să reînveți orice altă limbă.
  • Un set gratuit de instrumente vă permite să nu primiți întrebări inutile de la deținătorii drepturilor de autor.
  • Limba este familiară profesorilor, deoarece există de mult timp, iar profesorii noștri sunt în principal reprezentanți ai generației mai în vârstă.
  • Este răspândit pe scară largă în întreaga lume și este un tezaur pentru toate tipurile de biblioteci.
  • Standardizat, multi-platformă și compatibil cu versiunea inversă.
  • Este util studenților specialităților tehnice, și în special de fizică și matematică, datorită orientării către calcule științifice și inginerești.
  • Este relevant și solicitat până astăzi.
Deci de ce nu Fortran? * „Magic PC” 2000 №6 (28), p. 49–50.

În 1955, a fost lansat primul limbaj algoritmic de nivel înalt FORTRAN(FORmula TRANslator - traducător de formule). A fost folosit în principal pentru rezolvarea problemelor științifice, tehnice și de inginerie și a fost dezvoltat de angajații IBM sub conducerea John Backus... Puțin mai târziu, în 1957, John Backus și colaboratorii săi au instalat primul compilator Fortran la IBM (Bestinghouse). Programatorii care au lucrat anterior exclusiv în Assembler erau sceptici cu privire la capacitățile unui limbaj de înaltă performanță de nivel înalt, așa că principalul criteriu pentru dezvoltarea standardelor Fortran și crearea compilatoarelor din acest limbaj a fost eficiența codului executabil. Apropo, termenul „compilator” nu era folosit pe scară largă la acea vreme, deși Grace Hopper, singura femeie amiral din Statele Unite, care era numită și „prima doamnă a programării și bunica lui Cobol”, fusese deja introdus.
Majoritatea operatorilor Fortran au fost traduși direct în una sau două instrucțiuni de mașină, construcții sintactice simple și utilizarea activă a etichetelor și goto au făcut posibilă obținerea unui cod foarte rapid și, ca rezultat, programele Fortran uneori rulau mai repede decât programele de asamblare. Structura internă a programului tradus era, de asemenea, foarte simplă - tot codul, toate subrutinele și toate datele, împreună cu blocul comun, erau localizate exclusiv în memoria statică, ceea ce făcea însă imposibilă utilizarea recursiunii.
Deoarece Fortran a fost primul limbaj de nivel înalt care a satisfăcut nevoile majorității utilizatorilor la acea vreme și ușor de învățat, s-a răspândit foarte repede.
Datorită distribuției largi a acestui limbaj și apariției multor programe Fortran (în principal de natură computațională), problema standardizării acestuia a devenit urgentă. La început a fost standardul Fortran IV 1964, apoi, pe măsură ce au apărut noi idei, un nou standard a fost adoptat în 1978 Fortran 77(f77) cu extensii sintactice mai moderne și mai flexibile. Astăzi, cele mai comune variante de Fortran sunt Fortran 90(f90) și Fortran 95... Un grup de entuziaști termină munca la o super versiune a limbajului F2k, care va fi publicată la sfârșitul acestui an.
Deși în versiunile noi ale limbajului, uneori s-au făcut atât completări inutile (de exemplu, extensii asociate cu alocarea dinamică a memoriei), cât și utile, cum ar fi organizarea modulară a programului, lucrul cu părți de matrice etc., astăzi acest limbaj nu poate fi numit promițător pentru studiu, deoarece sintaxa sa este semnificativ depășită.
Cu toate acestea, pentru cei care destul de des trebuie să rezolve diverse probleme de calcul, nu este deloc necesar să ridice un manual de matematică și să „începe de la zero” de fiecare dată. În 90% din astfel de cazuri, ceea ce căutați a fost de mult implementat și depanat în Fortran. Prin urmare, cel mai probabil, viața lui Fortran este asigurată pentru o lungă perioadă de timp.
Mai există o nișă, relativ tânără, pentru Fortran - calculul paralel, unde semantica strictă a limbajului vă permite să obțineți programe de înaltă performanță. De obicei se folosește standardul f90, ușor extins cu un set de operatori pentru a indica părți ale programului potrivite pentru paralelizare. Parallel Fortran are propriul standard HPF(Fortran de înaltă performanță). Cu toate acestea, fanii Fortran, al căror motto a devenit legendara frază „De ce ar trebui să învăț alte limbi când pot scrie totul în Fortran”, au simțit nepotrivirea sa evidentă pentru proiecte la scară largă din cauza atașării sale la sintaxa anilor 50 și am încercat să introducă în el idei OOP la modă, dar obiectul Fortran ca standard nu a apărut niciodată.
Dintre versiunile freeware ale Fortran, cel mai faimos este f2c, care este implementat pentru toate sistemele UNIX și convertește textul unui program Fortran în cod C. Pentru DOS, există o versiune gratuită a bcf77. Dintre versiunile comerciale, în primul rând, trebuie menționat Microsoft Fortran, care vă permite să creați biblioteci dll, și Watcom Fortran, care generează cod foarte eficient. Pentru sarcinile care necesită o precizie ridicată a calculelor, este destinat compilatorul de la MicroWay. În general, compilatoarele Fortran de diferite calități sunt disponibile pe absolut toate platformele informatice.
Cu toate acestea, principalul merit al lui Fortran se află în altă parte. Când a devenit necesară dezvoltarea unor proiecte foarte mari, deficiențele Fortran, asociate în primul rând cu depanarea „grea”, au devenit inutil de împovărătoare. Prin urmare, Fortran a servit ca un stimulent puternic pentru dezvoltarea teoriei programelor de depanare și testare. Au apărut sute de verificatori sintactici Fortran, surprinzând erori logice ascunse. Mai târziu, din această direcție au apărut domenii teoretice de programare, cum ar fi echivalentul de optimizare a transformărilor programelor, compilarea la nivel înalt, testarea automată etc. Deci nu ar trebui să uităm de Fortran. Probabil că nu are sens să-l folosești ca un set de instrumente în sarcinile de integrare a sistemului, dar ceea ce a fost dezvoltat de cei mai buni programatori în 30-40 de ani poate grăbi procesul de dezvoltare. Cel puțin, există incomparabil mai multe „blocuri de construcție” software pentru Fortran decât pentru alte limbaje de programare. ■

* * *
John Backus Născut pe 3 decembrie 1924 în Philadelphia, Pennsylvania, într-o familie bogată, și-a petrecut copilăria în Wilmington. După ce a absolvit școala în 1942, a intrat la Universitatea din Virginia la Facultatea de Chimie (la insistențele tatălui său, chimist), dar după un timp a încetat să mai studieze și în 1943 a fost înmatriculat în serviciul militar.
Backus a început să servească în Brigada de Apărare Aeriană la Fort Stewart, Georgia, dar mai târziu a fost trimis la facultate pentru a studia medicina.
De ceva vreme a lucrat cu entuziasm într-un spital din oraș, dar în 1946 și-a pierdut interesul pentru această muncă, a părăsit armata și s-a mutat la New York, deși nu știa ce să întreprindă și cum să trăiască.
După un timp, Backus a intrat la școala de pregătire a tehnicienilor radio. "Am avut un profesor foarte bun și mi-a cerut să calculez caracteristicile unora dintre circuite. A fost teribil de plictisitor, dar extrem de interesant."
Backus a intrat curând la Universitatea Columbia (New York) pentru a studia matematica, unde a absolvit (1949). Cu puțin timp înainte de a-și termina studiile, a vizitat un centru de calculatoare IBM pe Madison Avenue. Și aici norocul i-a zâmbit pentru a doua oară - în 1950 Backus a devenit programator la IBM.
Despre dominația IBM în industria computerelor s-a vorbit pentru prima dată în 1952. Totul a început cu 701, cunoscut și sub numele de Calculator de Apărare. Imediat după lansarea Modelului 701, specialiștii de la Departamentul de Cercetare Aplicată au început să-l îmbunătățească (1955-1956).

Cele mai serioase schimbări au fost sugerate de John Backus, care mai târziu a luat parte activ la crearea computerului 704. În special, datorită lui, a apărut așa-numita tehnologie de „codare viteză”, care a făcut posibilă simplificarea semnificativă. scrierea de programe pentru 701. „Abilitatea de a accelera generarea de coduri pentru Machine 701, care era un computer cu punct fix unicast, fără registre de index, l-a transformat într-un sistem în virgulă mobilă cu adrese arbitrare și registre de index”, a amintit Backus.“ Deci, utilizatorii nu mai trebuiau să-și facă griji cu privire la codul binar.”
Chiar și atunci, au apărut primele componente ale tehnologiei de programare rapidă, care este folosită astăzi. De fapt, acest sistem a devenit predecesorul unor complexe similare care au fost lansate în anii 50-60 și au fost ulterior înlocuite de limbaje de nivel înalt.
Și în 1955, Backus a „inventat” Fortran, primul limbaj de mașină de nivel înalt. Ulterior, amintind de această perioadă, Backus va spune: „Nu am știut pentru ce să ne străduim și nu am știut cum să o facem”. Inițial, toate lucrările erau planificate să fie finalizate la începutul anului 1954, dar dezvoltarea limbii a fost finalizată aproape doi ani mai târziu.
Prima versiune a compilatorului a constat din 25.000 de linii de cod mașină înregistrate pe bandă magnetică. Fiecare IBM 704 a primit o copie a programului cu un manual de programare de 51 de pagini.
În 1959, Backus a dezvoltat reguli gramaticale pentru descrierea sintaxei limbilor de nivel înalt (forma normală Backus-Naur, abreviată BNF).
În 1976, John Backus a fost distins cu Medalia Națională pentru Contribuția la Știință, iar din 1991 a încetat să se mai implice în informatică.

Vladimir Buslaev

OCR: fir-vst, 2016

Top articole similare