Limbajul de programare Fortran. De ce fizicienii încă folosesc Fortran

În 2017, limba Fortran împlinește 60 de ani. În acest timp, limba a fost rafinată de mai multe ori. Versiunile „moderne” sunt considerate Fortran 90, 95, 2003 și 2008. Dacă inițial a fost un limbaj de programare nivel inalt cu o paradigmă pur structurală, apoi în versiunile ulterioare au existat instrumente pentru a susține OOP și programare paralelă. Astăzi, Fortran a fost implementat pe majoritatea platformelor.

Înainte de apariția Fortran, dezvoltatorii programau folosind codul mașinii și limbajul de asamblare. Limbajul de nivel înalt a câștigat rapid popularitate deoarece era ușor de învățat și genera cod executabil eficient. Acest lucru a făcut viața mult mai ușoară pentru programatori.

În 1950, când John Backus avea 25 de ani, a primit un master în matematică de la Universitatea Columbia și a obținut un loc de muncă ca programator la IBM. Curând, a condus o echipă care dezvolta un interpret numit „Fast Encoder” pentru computerul IBM-701. Apoi a lucrat ca parte a unei echipe pentru a crea un succesor mai puternic al lui 701, IBM-704.

În 1953, Backus a venit cu o inițiativă de raționalizare. El a propus crearea unui limbaj și a unui compilator pentru acesta, care ar trebui să simplifice programarea modelului IBM-704. Sistemul permitea scrierea programelor în formă algebrică, iar compilatorul trebuia să le traducă automat în coduri de mașină.

Cu această propunere, John Backus, după cum se spune, a fost la locul potrivit, în la fix. După ce a intrat târziu pe piață, IBM a avut dificultăți în creșterea vânzărilor computerelor sale. Din acest motiv, ea a susținut cercetarea în domeniul informaticii la Columbia, Harvard și alte câteva universități. În plus, IBM însuși căuta modalități de reducere a costurilor de programare și, de asemenea, a încercat să simplifice lucrul cu computerele pentru a le face mai atractive, „prietenoase” pentru utilizatori.

Cert este că la acea vreme erau în principal oamenii de știință, inginerii și profesorii care lucrau cu computerele. Calculatoarele au fost folosite pentru calcule științifice. Cu toate acestea, acești oameni au întâmpinat mari dificultăți, deoarece au fost nevoiți să folosească coduri de mașină și limbaj de asamblare. Și aceasta a necesitat o cunoaștere destul de profundă a structurii și funcționării computerului în sine.

Prin urmare, probabil că ar fi de acord să învețe un limbaj de nivel înalt, mai ales dacă seamănă cu formulele algebrice cu care sunt familiarizați. Astfel de considerente au determinat IBM să dezvolte Fortran.


IBM-704

Cercetătorii IBM care au creat Fortran habar n-aveau cum mare importanță va dobândi această limbă. Când au început să lucreze la începutul anului 1954, informatica se dezvolta spontan și toată lumea a lucrat după un capriciu. Acest lucru a dus la apariția programatorilor profesioniști și a informaticienilor.

Unul dintre managerii IBM a decis că jucătorii de șah fac programatori buni, așa că a început conversații cu posibili candidați programatori în timpul jocurilor de șah cu unul dintre angajații IBM (care, de altfel, era campion american la șah).

Puțini dintre cei opt oameni implicați în dezvoltarea Fortran aveau cunoștințe serioase despre computere. Ei au venit de la universități și companii aeriene, precum și de la propriile grupuri de programare ale IBM.

Chiar și șeful echipei de dezvoltare Fortran, John Backus, avea doar câțiva ani de experiență în computer când a început să creeze un nou limbaj de programare.
Înainte de facultate, Backus a fost un student mediocru („Am fost la mai multe școli decât îmi amintesc”). După ce a servit în armată în timpul celui de-al Doilea Război Mondial, a ajuns în New York City, unde a urmat școala de inginerie radio. „Limita aspirațiilor mele a fost să fac un dispozitiv de reproducere a sunetului de înaltă calitate”, a recunoscut mai târziu Beckus.

Cu toate acestea, un profesor de reparații de televiziune și radio i-a stârnit interesul lui Backus pentru matematică și l-a convins să-și continue studiile la Universitatea Columbia. Acesta a fost începutul umil al uneia dintre cele mai pline de satisfacții cariere din istoria computerului.

Așadar, dezvoltatorii, conduși de Backus, s-au stabilit la sediul IBM de pe Madison Avenue din New York.

Ei au identificat conceptele de bază ale noului limbaj, în special operatorul de atribuire (de exemplu, N = 100), care a atribuit variabile anumite valori, a introdus variabile indexabile care spuneau computerului ce element dintr-o listă de variabile este necesar (de exemplu, X(3) înseamnă al treilea element al unei liste numite X), a introdus foarte importantul operator DO, care permitea succesiunea dorită de instrucțiuni a fi repetat număr dat o singura data.

După cum a afirmat Backus, majoritatea oamenilor credeau că principala contribuție a lui Fortran a fost capacitatea sa de a scrie programe ca formule algebrice, mai degrabă decât în limbajul mașinii. Dar de fapt nu este. În opinia sa, Fortran a automatizat în primul rând organizarea buclelor. Importanța acestei sarcini în dezvoltarea aplicațiilor științifice este greu de supraestimat. Lucrările la limbă au mers rapid.

Cu toate acestea, dezvoltarea unui compilator este o chestiune complet diferită. Backus a înțeles că nu era ușor să risipiți îndoielile cu privire la posibilitățile de programare „automată”, adică scrierea de programe în limbaje de nivel înalt. Acest lucru se va întâmpla atunci când programele produse folosind Fortran sunt la fel de rapide și de încredere ca cele scrise în codurile mașinii sau în limbaj de asamblare, se gândi el.

Conform planului, au fost alocate șase luni pentru dezvoltarea compilatorului, dar munca la acesta a durat mai mult de doi ani.

La sfârșitul anului 1956 și în 1957, intensitatea lucrărilor de reglare fină și depanare a compilatorului a crescut brusc. În această perioadă, membrii grupului închiriau adesea o cameră la un hotel din apropiere, unde dormeau ziua în timp ce lucrau la mașină noaptea pentru a avea cât mai mult timp neîntrerupt posibil. Erorile au fost eliminate una câte una, iar în aprilie 1957 compilatorul a fost gata de utilizare de către proprietarii mașinii IBM-704.

„Mare jenă”

Într-o greșeală pe care Backus a numit-o „o mare jenă”, compilatorul a fost trimis la laboratorul Westinghouse-Bettis sub forma unui pachet de cărți perforate și fără instrucțiuni; ceea ce i-a permis lui Herb Bright de la laboratorul Westinghouse-Bettis să conducă orbește Fortran. Alți utilizatori au primit sistemul pe bandă magnetică împreună cu un manual de utilizare.

Într-o vineri din aprilie 1957, un poștal a livrat un pachet misterios centrului de calculatoare al laboratorului atomic Westinghouse-Bettis de lângă Pittsburgh. Programatorul Herb Bright și doi dintre colegii săi au deschis o cutie nemarcată și au găsit un teanc de aproximativ 2.000 de cărți perforate, fără o singură instrucțiune.

Privind cardurile perforate, Bright și-a amintit că IBM era în proces de finalizare a unui limbaj de nivel înalt pentru utilizare pe IBM-704. Poate că poștașul a adus exact acest compilator mult așteptat? Bright și prietenii lui au decis să încarce cărțile misterioase în computer și să vadă ce se întâmplă.

Bright a pus-o în cititorul computerului program de testare, scris în Fortran, și apăsat butonul de pornire. Noul compilator a trimis un mesaj imprimantei: „a fost detectată o eroare la operator pe cardul nr. 25 - lipsea o virgulă”.

Programatorii obișnuiți cu mesaje confuze sub formă de coduri numerice au fost uimiți de claritatea acestor informații. Operatorul incorect a fost corectat și butonul de pornire a fost apăsat din nou. Benzile au început să se învârtească, iar computerul a scuipat un teanc de carduri de program perforate. Odată ce cardurile au fost încărcate în cititor, imprimanta a început să funcționeze și a tipărit 28 de pagini fără oprire. Computerul a făcut doar o mică eroare în formatul de ieșire. „Dar cifrele erau corecte! Cifrele au fost corecte!” - a exclamat Bright mai târziu.

De fapt, cam în același timp cu Fortran, au apărut alte două limbi de nivel înalt - Cobol și Algol, de la sfârșitul anilor 50 pentru o lungă perioadă de timp erau în frunte în lumea computerelor. Majoritate programe moderne scrise în limbi care sunt descendenți ai acestor trei limbi.

Distribuție și adaptare

Dar la început Fortran nu a fost primit cu multă căldură. Programatorii, după cum și-a amintit Backus, „au fost foarte sceptici cu privire la toate aplicațiile noastre”. Cu toate acestea, în comparație cu predecesorii săi, Fortran a fost relativ ușor de învățat și utilizat.

În plus, IBM a furnizat gratuit toate modelele 704 cu Fortran. Ca rezultat, până în 1958, mai mult de jumătate din toate comenzile mașinii de pe cele 60 de computere ale companiei au fost obținute nu manual, ci „automat”, folosind un nou limbaj de nivel înalt.

Backus a înțeles că producătorii concurenți vor dezvolta și limbaje de nivel înalt pentru ei calculatoare. Cu toate acestea, Fortran a devenit rapid norma și a fost adaptat pentru diverse modele de computere. Prima adaptare a fost realizată chiar de IBM. Cinci ani mai târziu, Fortran era folosit pe șase diverse modele calculatoare de la IBM, precum și pe computere de la Sperry Rand, Philco și alții.

Un grup mic, inclusiv David Hemmis, un timp scurt a adaptat Fortran la IBM-650, o mașină mai mică decât IBM-704. Khemmis și colegii săi au dezvoltat sistemul FORTRANSIT (PENTRU TRANSIT); mai târziu aceste două cuvinte s-au contopit într-unul singur. Astfel, sistemul FORTRANSIT a devenit primul traducător al originalului, lucrând pe calculatoare de mai multe modele.


David Hemmis - unul dintre dezvoltatorii originali limbaje informatice, conducând mașina lui din 1928. Fotografie făcută în Westhampton, New York, în timpul cursei de mașini din 1957.

Finalizare

Cu toate acestea, munca la noua limbă a trebuit să continue destul de mult timp: acest lucru a devenit clar la începutul anului 1957, când procesul de depanare a continuat. Backus și alți dezvoltatori și-au dat seama că limbajul are nevoie de mai mult sistem precis diagnostice erori de software. În plus, a fost necesar să se implementeze posibilitatea scrierii separate și independente a subrutinelor și module software. Astfel, limba ar câștiga un alt avantaj - reutilizare cod.

Datorită eforturilor dezvoltatorilor, Fortran II a apărut la doar un an de la crearea originalului. Unul dintre avantajele noului limbaj a fost că permitea introducerea în programe a fragmentelor de cod de asamblare. Mai mult versiune ulterioară, Fortran III, a fost creat în 1958. Fortran IV, care a extins și mai mult capacitățile limbii, a devenit cunoscut în 1962.

Miezul limbajului, operatorii și expresiile sale de bază, a rămas practic neschimbat de-a lungul anilor. Dar, pe măsură ce Fortran a fost adaptat în mod repetat la noi sisteme de mașini pentru care nu era destinat, diferențele s-au acumulat treptat. S-au pierdut unele oportunități, au apărut altele noi. Acest lucru a dus inevitabil la confuzie.

De exemplu, nu toți compilatorii au interpretat la fel cel mai important operator DO: unii au executat întotdeauna bucla cel puțin o dată fără a verifica dacă trebuie executată deloc, alții au făcut o astfel de verificare. Pentru a pune ordine în astfel de probleme, producătorii de computere și utilizatorii au convenit să standardizeze limbajul.

În 1966, primul standard a fost numit Fortran 66. În 1977, standardul Fortran 77 a fost lansat în 1991, Fortran 90 a fost creat în 1997.

Fortran în URSS

În Uniunea Sovietică, Algol-60 a fost mai popular. Prin urmare, Fortran a apărut în această țară mai târziu. Cu toate acestea, a ieșit treptat pe primul loc în popularitate. Compilatoare (traducători) au fost dezvoltate pentru majoritatea calculatoare casnice– „Minsk-32”, BESM-4, BESM-6, AS-6, ES EVM, SM EVM, MVK „Elbrus” și așa mai departe.

În IPM im. Keldysh înăuntru timp diferit Au fost dezvoltați mai mulți traducători. Două dintre ele - Fortran-Almo și Forshag (Fortran în pas) au fost scrise în limbajul Almo, iar codul a fost generat în aceeași limbă. Acest lucru a făcut posibilă instalarea traducătorilor pe mai multe tipuri diferite de computere. Ambii traducători implementează standardul Fortran 66.

Foreshag a inclus și un limbaj conversațional care a permis crearea, editarea și traducerea interactivă a codului. În plus, a fost dezvoltat un complex programe de grafică pentru Fortran - Graphor, care a fost folosit activ pe diferite computere.

Fortran rămâne popular printre oamenii de știință până în prezent. Este primul limbaj de programare de nivel înalt care are un traducător care a primit uz practicȘi dezvoltare ulterioară. După cum se precizează în manualul IBM lansat în 1957, „Fortran oferă metoda eficienta crearea de programe pentru modelul 704, este ușor de învățat și nu necesită cunoștințe profunde de computer.”

De atunci, oamenii de știință, inginerii și studenții au putut să comunice cu un computer fără ajutorul programatorilor profesioniști care scriu în limbaj de asamblare.

Cu toate acestea, următoarea generație de programatori a început să-l trateze pe Fortran ca pe o „fosilă”.

* „PC Magic” 2000 nr. 6(28), pp. 49–50.

În 1955, a fost lansat primul limbaj algoritmic de nivel înalt. FORTRAN(FORmula TRANslator - translator de formule). A fost folosit în principal pentru a rezolva probleme ș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 angajații săi au instalat primul compilator Fortran la IBM (Bestinghouse). Programatorii care anterior lucrau exclusiv în Assembly erau sceptici cu privire la capacitățile unui limbaj de nivel înalt, de înaltă performanță, astfel încât principalul criteriu la dezvoltarea standardelor Fortran și la crearea compilatoarelor din acest limbaj a fost eficiența codului executabil. Apropo, termenul „compilator” nu era încă folosit pe scară largă, deși fusese deja introdus de Grace Hopper, singura femeie amiral din Statele Unite, care era numită și „prima doamnă a programării și bunica lui Cobol. ”
Majoritatea declarațiilor Fortran s-au tradus direct în una sau două instrucțiuni de mașină, constructe sintactice simple și utilizare activă etichete și goto au făcut posibilă obținerea foarte cod rapid, și ca rezultat, programele Fortran uneori rulau mai repede decât cele de asamblare. Structura internă a programului tradus în sine a fost, de asemenea, foarte simplă - tot codul, toate subrutinele și toate datele, împreună cu un bloc comun, erau localizate exclusiv în memorie statică, din cauza căruia, însă, era imposibil să se folosească recursiunea.
Deoarece Fortran a fost primul limbaj de nivel înalt care a satisfăcut nevoile majorității utilizatorilor din acea vreme și a fost, de asemenea, ușor de învățat, s-a răspândit foarte repede.
Datorită utilizării pe scară largă 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 standard Fortran IV 1964, apoi, pe măsură ce au apărut noi idei, a fost adoptat în 1978 nou standard Fortran 77(f77) s un numar mare mai modern și mai flexibil extensii sintactice. Astăzi, cea mai comună variantă de Fortran este Fortran 90(f90) și Fortran 95. Un grup de entuziaști termină munca la o super versiune a limbajului F2k, care va fi publicată anul acesta.
Deși versiunile noi ale limbajului includeau uneori atât adăugiri inutile (de exemplu, extensii legate de alocarea dinamică a memoriei) cât și utile, cum ar fi organizarea modulară a programului, lucrul cu părți ale matricelor etc., astăzi acest limbaj nu poate fi numit promițător. pentru învățare, deoarece sintaxa sa este semnificativ depășită.
Cu toate acestea, cei care destul de des trebuie să decidă diverse sarcini de calcul, nu este deloc necesar să iei un manual de matematică de fiecare dată și să „începi de la zero”. in 90% cazuri similare 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.
Există o altă nișă, relativ tânără, pentru Fortran - calcul paralel, unde semantica strictă a limbajului permite 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 era legenda legenda „De ce ar trebui să învăț alte limbi atunci când pot scrie totul în Fortran”, au simțit că este evident inadecvată pentru proiecte la scară largă din cauza atașării la sintaxa anilor 50 și au încercat pentru a-l introduce idei OOP la modă, dar obiectul Fortran nu a apărut niciodată ca standard.
Dintre versiunile Fortran distribuite gratuit, cea mai cunoscută este f2c, implementată pentru toate sistemele UNIX și care convertește textul unui program Fortran în cod C. Pentru DOS există o versiune bcf77, distribuită gratuit. Dintre versiunile comerciale, primele care trebuie remarcate sunt Microsoft Fortran, care vă permite să creați biblioteci dll, și Watcom Fortran, care generează cod foarte eficient. Pentru sarcini care necesită precizie ridicata de calcul, este proiectat un compilator de la MicroWay. În general, compilatoarele Fortran de diferite calități sunt disponibile pe absolut toate platformele computerizate.
Cu toate acestea, principalul merit al lui Fortran se află în altă parte. Când a apărut nevoia de a dezvolta o foarte proiecte majore, 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 pentru textele Fortran, surprinzând erori logice ascunse. Ulterior, astfel de domenii teoretice de programare, cum ar fi echivalentul de optimizare a transformărilor programelor, compilarea la nivel înalt, testarea automată etc., au crescut din această direcție. Deci nu poți uita de Fortran. Probabil că nu are sens să-l folosești ca un set de instrumente pentru sarcinile de integrare a sistemului, dar ceea ce a fost dezvoltat cei mai buni programatoriîn 30–40 de ani, poate accelera procesul de dezvoltare. Cel puțin, acum există incomparabil mai multe „blocuri de construcție” software pentru Fortran decât pentru alte limbaje de programare. ■

* * *
John Backus născut la 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 pentru a studia chimia (la insistențele tatălui său, chimist), dar după un timp a încetat să mai studieze și în 1943 a fost chemat la serviciu militar.
Backus a început să servească în brigada de apărare aeriană la Fort Stewart, Georgia, dar ulterior a fost trimis la facultate pentru a studia medicina.
De ceva vreme a lucrat cu entuziasm la spitalul orașului, 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ă facă și cum să trăiască mai departe.
După ceva timp, Backus a intrat într-o școală de pregătire a ingineriei radio. "Am avut un profesor foarte bun și mi-a cerut să calculez caracteristicile unor 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 primit un educatie inalta(1949). Cu puțin timp înainte de absolvire, 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 pentru IBM.
Dominanța IBM în industria computerelor a fost discutată pentru prima dată în 1952. Totul a început cu Modelul 701, cunoscut și sub numele de Calculator de Apărare. Imediat după lansarea modelului 701, specialiștii de la Divizia de Cercetare Aplicată au început să-l îmbunătățească (1955–1956).

Cele mai serioase modificări au fost propuse 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 a vitezei”, care a făcut posibilă simplificarea semnificativă. scrierea de programe pentru 701. „Posibilitatea generării accelerate a codului pentru mașina 701, care era un computer cu virgulă fixă ​​uni-adresă, fără registre de index, l-a transformat într-un sistem de adresare aleatorie în virgulă mobilă cu registre de index”, Backus. „Așa că utilizatorii nu mai trebuiau să se lupte cu. cod binar".
Chiar și atunci au apărut primele componente ale tehnologiei de scriere rapidă a programelor, care este folosită astăzi. De fapt acest sistem a devenit predecesorul unor complexe similare care au fost lansate în anii 50 și 60 și au fost ulterior înlocuite cu limbaje de nivel înalt.
Și în 1955, Backus a „inventat” Fortran, primul limbaj de mașină de nivel înalt. Ulterior, amintindu-și 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 de mașină scrise pe bandă magnetică. Fiecare IBM 704 a primit o copie a programului cu un manual de programare de 51 de pagini.
În 1959 s-a dezvoltat Backus reguli gramaticale pentru a descrie sintaxa limbilor de nivel înalt ( forma normala Backus-Naur, prescurtat ca BNF).
În 1976, John Backus a primit Medalia Națională pentru contribuțiile sale la știință, iar în 1991 a încetat să mai lucreze în informatică.

Vladimir Buslaev

OCR: fir-vst, 2016

Mijlocul anilor 50 caracterizat prin progrese rapide în domeniul programării. Rolul programării în codurile mașinilor a început să scadă și au început să apară noi tipuri de limbaje de programare, acționând ca intermediar între mașini și programatori. A sosit timpul pentru a doua și a treia generație de limbaje de programare

De la mijlocul anilor 50. secolul XX a început să creeze primele limbaje de programare de nivel înalt. Aceste limbi au fost independente de mașină (nu sunt legate de un anumit tip de computer).

Dar fiecare limbă și-a dezvoltat propriile compilatoare - un program care realizează compilarea.

Compilarea este traducerea unui program scris într-un limbaj sursă de nivel înalt într-un program echivalent într-un limbaj de nivel scăzut apropiat de codul mașină (cod absolut, modul obiect, uneori limbaj de asamblare)

limbaj de programare FORTRAN

Primul limbaj de nivel înalt a fost creat între 1954 și 1957 de un grup de programatori condus de John Backus la IBM Corporation și aceasta a devenit următoarea etapă în dezvoltarea limbajelor de programare. Era limba programare FORTRAN. A fost destinat calculelor științifice și tehnice. Numele Fortran este prescurtarea de la FORmulaTRANslator (traducător de formule).

Istoria limbii

La sfârșitul anului 1953, John Backus a propus să înceapă dezvoltarea unei alternative eficiente la asamblare pentru programare pe PC-ul IBM 704. Până la jumătatea anului 1954, a fost finalizată un proiect de specificație a limbajului Fortran. Primul manual pentru Fortran a apărut în octombrie 1956, împreună cu primul compilator, livrat în aprilie 1957. Compilatorul era un compilator de optimizare, deoarece clienții erau reticenți să folosească un limbaj de programare de nivel înalt care nu putea genera cod cu performanțe mai mici decât asamblarea. limba.

La acea vreme, comunitatea era sceptică față de noul mod de programare și nu credea că Fortran va permite o programare mai rapidă și mai eficientă. Potrivit însuși John Backus, cea mai mare parte a lucrării sale a avut ca scop „a fi leneș”. Nu-i plăcea să scrie programe pentru IBM 701 în asamblare.

Limbajul a fost adoptat pe scară largă de oamenii de știință pentru scrierea de programe intensive de calcul. Includere tip complex datele l-au făcut deosebit de potrivit pentru aplicații tehnice.

Până în 1960, existau versiuni de Fortran pentru calculatoare IBM 709, 650, 1620, 7090. Marea sa popularitate a încurajat producătorii de computere concurenți să creeze compilatoare Fortran pentru computerele lor. Astfel, până în 1963 existau peste 40 de compilatori pentru platforme diferite. Acesta este motivul pentru care Fortran este considerat primul limbaj de programare utilizat pe scară largă.

Fortran în URSS

Fortran a apărut în URSS mai târziu decât în ​​Occident, deoarece la început Algol a fost considerat o limbă mai promițătoare în țara noastră. Comunicarea dintre fizicienii sovietici și colegii lor de la CERN a jucat un rol major în introducerea Fortran, unde în anii 1960 aproape toate calculele au fost efectuate folosind programe Fortran.

Primul compilator sovietic Fortran a fost creat în 1967 pentru mașina Minsk-2, dar nu a câștigat prea multă popularitate. Implementare pe scară largă Fortran a început după crearea în 1968 a compilatorului FORTRAN-DUBNA pentru mașina BESM-6. Calculatoarele ES, care au apărut în 1972, aveau deja inițial un traducător Fortran („împrumutat” de la IBM/360 împreună cu alt software)

Fortran modern. Virtuțile limbajului

Fortran a fost utilizat pe scară largă în principal pentru calculul științific și de inginerie. Este perfect pentru rezolvarea problemelor numerice, deoarece multe biblioteci au fost scrise de peste 50 de ani, astfel încât limbajul este folosit acum și nu este în pericol de a fi uitat în viitorul apropiat. Este folosit și astăzi, însă, nu atât datorită designului său de succes, cât și pentru că cantitate mare programe scrise pe el, schimbare și, mai ales, rescrie care nu are sens.

Probabil, dacă doriți să calculați rapid ceva, atunci Fortran va fi unul dintre cele mai bune opțiuni. Tocmai de aceea a fost inventat limbajul.

Structura sa permite compilatorului să optimizeze foarte bine calculele.

Printre oamenii de știință, de exemplu, există o vorbă care spune 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 un pachet pentru înmulțirea matricelor, un pachet pentru rezolvarea ecuațiilor integrale complexe și multe, multe altele.

  • Compilatoare
  • În 2017, limba Fortran împlinește 60 de ani. În acest timp, limba a fost rafinată de mai multe ori. Fortran 90, 95, 2003 și 2008 sunt considerate versiuni „moderne” Dacă inițial a fost un limbaj de programare de nivel înalt cu o paradigmă pur structurală, atunci în versiunile ulterioare a apărut suportul pentru OOP și programare paralelă. Astăzi, Fortran a fost implementat pe majoritatea platformelor.

    Înainte de apariția Fortran, dezvoltatorii programau folosind codul mașinii și limbajul de asamblare. Limbajul de nivel înalt a câștigat rapid popularitate deoarece era ușor de învățat și genera cod executabil eficient. Acest lucru a făcut viața mult mai ușoară pentru programatori.

    În 1950, când John Backus avea 25 de ani, a primit un master în matematică de la Universitatea Columbia și a obținut un loc de muncă ca programator la IBM. Curând, a condus o echipă care dezvolta un interpret numit „Fast Encoder” pentru computerul IBM-701. Apoi a lucrat ca parte a unei echipe pentru a crea un succesor mai puternic al lui 701, IBM-704.

    În 1953, Backus a venit cu o inițiativă de raționalizare. El a propus crearea unui limbaj și a unui compilator pentru acesta, care ar trebui să simplifice programarea modelului IBM-704. Sistemul permitea scrierea programelor în formă algebrică, iar compilatorul trebuia să le traducă automat în coduri de mașină.

    Cu această propunere, John Backus, după cum se spune, a fost la locul potrivit la momentul potrivit. După ce a intrat târziu pe piață, IBM a avut dificultăți în creșterea vânzărilor computerelor sale. Din acest motiv, ea a susținut cercetarea în domeniul informaticii la Columbia, Harvard și alte câteva universități. În plus, IBM însuși căuta modalități de reducere a costurilor de programare și, de asemenea, a încercat să simplifice lucrul cu computerele pentru a le face mai atractive, „prietenoase” pentru utilizatori.

    Cert este că la acea vreme erau în principal oamenii de știință, inginerii și profesorii care lucrau cu computerele. Calculatoarele au fost folosite pentru calcule științifice. Cu toate acestea, acești oameni au întâmpinat mari dificultăți, deoarece au fost nevoiți să folosească coduri de mașină și limbaj de asamblare. Și aceasta a necesitat o cunoaștere destul de profundă a structurii și funcționării computerului în sine.

    Prin urmare, probabil că ar fi de acord să învețe un limbaj de nivel înalt, mai ales dacă seamănă cu formulele algebrice cu care sunt familiarizați. Astfel de considerente au determinat IBM să dezvolte Fortran.


    IBM-704

    Cercetătorii IBM care au creat Fortran nu aveau idee cât de important va deveni acest limbaj. Când au început să lucreze la începutul anului 1954, informatica se dezvolta spontan și toată lumea a lucrat după un capriciu. Acest lucru a dus la apariția programatorilor profesioniști și a informaticienilor.

    Unul dintre managerii IBM a decis că jucătorii de șah sunt buni programatori, așa că a început discuții cu posibili candidați pentru programatori în timpul jocurilor de șah cu unul dintre angajații IBM (care, de altfel, era campion american la șah).

    Puțini dintre cei opt oameni implicați în dezvoltarea Fortran aveau cunoștințe serioase despre computere. Ei au venit de la universități și companii aeriene, precum și de la propriile grupuri de programare ale IBM.

    Chiar și șeful echipei de dezvoltare Fortran, John Backus, avea doar câțiva ani de experiență în computer când a început să creeze un nou limbaj de programare.
    Înainte de facultate, Backus a fost un student mediocru („Am fost la mai multe școli decât îmi amintesc”). După ce a servit în armată în timpul celui de-al Doilea Război Mondial, a ajuns în New York City, unde a urmat școala de inginerie radio. „Limita aspirațiilor mele a fost să fac un dispozitiv de reproducere a sunetului de înaltă calitate”, a recunoscut mai târziu Beckus.

    Cu toate acestea, un profesor de reparații de televiziune și radio i-a stârnit interesul lui Backus pentru matematică și l-a convins să-și continue studiile la Universitatea Columbia. Acesta a fost începutul umil al uneia dintre cele mai pline de satisfacții cariere din istoria computerului.

    Așadar, dezvoltatorii, conduși de Backus, s-au stabilit la sediul IBM de pe Madison Avenue din New York.

    Ei au identificat conceptele de bază ale noului limbaj, în special operatorul de atribuire (de exemplu, N = 100), care setează variabilele la valori specifice, au introdus variabile indexate care spuneau computerului ce element din lista de variabile este necesar (de exemplu , X(3) înseamnă al treilea element al listei, numit X), a propus un operator DO foarte important, care îți permitea să repete secvența dorită de operatori de un anumit număr de ori.

    După cum a afirmat Backus, majoritatea oamenilor credeau că principala contribuție a lui Fortran a fost capacitatea sa de a scrie programe mai degrabă ca formule algebrice decât în ​​limbajul mașinii. Dar de fapt nu este. În opinia sa, Fortran a automatizat în primul rând organizarea buclelor. Importanța acestei sarcini în dezvoltarea aplicațiilor științifice este greu de supraestimat. Lucrările la limbă au mers rapid.

    Cu toate acestea, dezvoltarea unui compilator este o chestiune complet diferită. Backus a înțeles că nu era ușor să risipiți îndoielile cu privire la posibilitățile de programare „automată”, adică scrierea de programe în limbaje de nivel înalt. Acest lucru se va întâmpla atunci când programele produse folosind Fortran sunt la fel de rapide și de încredere ca cele scrise în codul mașinii sau limbajul de asamblare, s-a gândit el.

    Conform planului, au fost alocate șase luni pentru dezvoltarea compilatorului, dar munca la acesta a durat mai mult de doi ani.

    La sfârșitul anului 1956 și în 1957, intensitatea lucrărilor de reglare fină și depanare a compilatorului a crescut brusc. În această perioadă, membrii grupului închiriau adesea o cameră la un hotel din apropiere, unde dormeau ziua în timp ce lucrau la mașină noaptea pentru a avea cât mai mult timp neîntrerupt posibil. Erorile au fost eliminate una câte una, iar în aprilie 1957 compilatorul a fost gata de utilizare de către proprietarii mașinii IBM-704.

    „Mare jenă”

    Într-o greșeală pe care Backus a numit-o „o mare jenă”, compilatorul a fost trimis la laboratorul Westinghouse-Bettis sub forma unui pachet de cărți perforate și fără instrucțiuni; ceea ce i-a permis lui Herb Bright de la laboratorul Westinghouse-Bettis să conducă orbește Fortran. Alți utilizatori au primit sistemul pe bandă magnetică împreună cu un manual de utilizare.

    Într-o vineri din aprilie 1957, un poștal a livrat un pachet misterios centrului de calculatoare al laboratorului atomic Westinghouse-Bettis de lângă Pittsburgh. Programatorul Herb Bright și doi dintre colegii săi au deschis o cutie nemarcată și au găsit un teanc de aproximativ 2.000 de cărți perforate, fără o singură instrucțiune.

    Privind cardurile perforate, Bright și-a amintit că IBM era în proces de finalizare a unui limbaj de nivel înalt pentru utilizare pe IBM-704. Poate că poștașul a adus exact acest compilator mult așteptat? Bright și prietenii lui au decis să încarce cărțile misterioase în computer și să vadă ce se întâmplă.

    Bright a introdus un program de testare scris în Fortran în cititorul computerului și a apăsat butonul de pornire. Noul compilator a trimis un mesaj imprimantei: „a fost detectată o eroare la operator pe cardul nr. 25 - lipsea o virgulă”.

    Programatorii obișnuiți cu mesaje confuze sub formă de coduri numerice au fost uimiți de claritatea acestor informații. Operatorul incorect a fost corectat și butonul de pornire a fost apăsat din nou. Benzile au început să se învârtească, iar computerul a scuipat un teanc de carduri de program perforate. Odată ce cardurile au fost încărcate în cititor, imprimanta a început să funcționeze și a tipărit 28 de pagini fără oprire. Computerul a făcut doar o mică eroare în formatul de ieșire. „Dar cifrele erau corecte! Cifrele au fost corecte!” - a exclamat Bright mai târziu.

    De fapt, aproximativ în același timp cu Fortran, au apărut încă două limbaje de nivel înalt - Cobol și Algol De la sfârșitul anilor 50, ele au fost lideri în lumea computerelor de mult timp care reprezintă sunt descendenți ai acestor trei limbi.

    Distribuție și adaptare

    Dar la început Fortran nu a fost primit cu multă căldură. Programatorii, după cum și-a amintit Backus, „au fost foarte sceptici cu privire la toate aplicațiile noastre”. Cu toate acestea, în comparație cu predecesorii săi, Fortran a fost relativ ușor de învățat și utilizat.

    În plus, IBM a furnizat gratuit toate modelele 704 cu Fortran. Ca rezultat, până în 1958, mai mult de jumătate din toate comenzile mașinii de pe cele 60 de computere ale companiei au fost obținute nu manual, ci „automat”, folosind un nou limbaj de nivel înalt.

    Backus a înțeles că producătorii concurenți vor dezvolta și limbaje de nivel înalt pentru computerele lor. Cu toate acestea, Fortran a devenit rapid norma și a fost adaptat pentru diverse modele de computere. Prima adaptare a fost realizată chiar de IBM. Cinci ani mai târziu, Fortran a fost folosit pe șase modele diferite de computere IBM, precum și pe computere de la Sperry Rand, Philco și alții.

    O echipă mică, inclusiv David Hemmis, a adaptat rapid Fortran la IBM-650, o mașină mai mică decât IBM-704. Khemmis și colegii săi au dezvoltat sistemul FORTRANSIT (PENTRU TRANSIT); mai târziu aceste două cuvinte s-au contopit într-unul singur. Astfel, sistemul FORTRANSIT a devenit primul traducător al originalului, lucrând pe calculatoare de mai multe modele.


    David Hemmis, un dezvoltator timpuriu de limbaj informatic, își conduce mașina din 1928. Fotografie făcută în Westhampton, New York, în timpul cursei de mașini din 1957.

    Finalizare

    Cu toate acestea, munca la noua limbă a trebuit să continue destul de mult timp: acest lucru a devenit clar la începutul anului 1957, când procesul de depanare a continuat. Backus și alți dezvoltatori și-au dat seama că limbajul avea nevoie de un sistem mai precis pentru diagnosticarea erorilor software. În plus, a fost necesară implementarea posibilității de scriere separată și independentă a subrutinelor și modulelor de program. Acest lucru ar oferi limbajului un alt beneficiu: reutilizarea codului.

    Datorită eforturilor dezvoltatorilor, Fortran II a apărut la doar un an de la crearea originalului. Unul dintre avantajele noului limbaj a fost că permitea introducerea în programe a fragmentelor de cod de asamblare. O versiune ulterioară, Fortran III, a fost creată în 1958. Fortran IV, care a extins și mai mult capacitățile limbii, a devenit cunoscut în 1962.

    Miezul limbajului, operatorii și expresiile sale de bază, a rămas practic neschimbat de-a lungul anilor. Dar, pe măsură ce Fortran a fost adaptat în mod repetat la noi sisteme de mașini pentru care nu era destinat, diferențele s-au acumulat treptat. S-au pierdut unele oportunități, au apărut altele noi. Acest lucru a dus inevitabil la confuzie.

    De exemplu, nu toți compilatorii au interpretat instrucțiunea DO extrem de importantă în același mod: unii au executat întotdeauna bucla cel puțin o dată fără a verifica dacă ar trebui să fie executată deloc, în timp ce alții au făcut-o. Pentru a pune ordine în astfel de probleme, producătorii de computere și utilizatorii au convenit să standardizeze limbajul.

    În 1966, primul standard a fost numit Fortran 66. În 1977, standardul Fortran 77 a fost lansat în 1991, Fortran 90 a fost creat în 1997.

    Fortran în URSS

    În Uniunea Sovietică, Algol-60 a fost mai popular. Prin urmare, Fortran a apărut în această țară mai târziu. Cu toate acestea, a ieșit treptat pe primul loc în popularitate. Pentru majoritatea computerelor domestice au fost dezvoltate compilatoare (traducători) - „Minsk-32”, BESM-4, BESM-6, AS-6, ES Computer, SM Computer, MVK „Elbrus” și așa mai departe.

    În IPM im. Keldysh, mai mulți traducători au fost dezvoltați în momente diferite. Două dintre ele - Fortran-Almo și Forshag (Fortran în pas) au fost scrise în limbajul Almo, iar codul a fost generat în aceeași limbă. Acest lucru a făcut posibilă instalarea traducătorilor pe mai multe tipuri diferite de computere. Ambii traducători implementează standardul Fortran 66.

    Foreshag a inclus și un limbaj conversațional care a permis crearea, editarea și traducerea interactivă a codului. În plus, a fost dezvoltat un set de programe grafice pentru Fortran - Graphor, care a fost utilizat în mod activ pe diferite computere.

    Fortran rămâne popular printre oamenii de știință până în prezent. Acesta este primul limbaj de programare de nivel înalt care are un traducător, care a primit aplicare practică și dezvoltare ulterioară. După cum se menționează în manualul IBM din 1957, „Fortran oferă o modalitate eficientă de a scrie programe 704 care este ușor de învățat și nu necesită cunoștințe extinse de calculator”.

    De atunci, oamenii de știință, inginerii și studenții au putut să comunice cu un computer fără ajutorul programatorilor profesioniști care scriu în limbaj de asamblare.

    Cu toate acestea, următoarea generație de programatori a început să-l trateze pe Fortran ca pe o „fosilă”.

    Am auzit prima dată despre Fortran în copilărie timpurie de la tată. El a spus că în anii 70 a trebuit să stea ore întregi la coadă la aproape singurul computer din universitate pentru a rula un cod primitiv folosind un card perforat. Recunosc sincer, de atunci și până de curând (în ciuda educației tehnice pe care am primit-o) am avut deplină încredere că Fortran a rămas undeva departe acolo, într-o lume în care suporturile de informații sunt cutii ciudate de carton cu găuri, iar computerele sunt atât de scumpe, încât sunt percepută ca o adevărată atracție.

    Imaginați-vă surpriza mea când am aflat că Fortran nu numai că este încă folosit undeva, ci este în curs de dezvoltare, este solicitat și este încă relevant. Dacă și tu ai crezut până în acest moment că Fortran a murit de mult, atunci iată câteva pentru tine: fapte interesante de ce mai merge?

    A supraviețuit la cel puțin 10 actualizări

    De fapt, Fortranul despre care auziți de la profesorii de la școală sau universitate a fost creat între 1954 și 1957. A intrat în istorie ca primul limbaj de nivel înalt implementat complet, a făcut o mică descoperire în lumea IT, dar în esență nu a fost foarte convenabil și funcțional. IBM a început să-l „termine” aproape imediat în 1958, a apărut FORTRAN II și, în paralel, FORTRAN III. Dar a căpătat un aspect mai mult sau mai puțin decent abia în anii 70, când au apărut mașini destul de portabile, când a fost dezvoltat un standard IBM FORTRAN IV cu drepturi depline și a apărut FORTRAN 66 cu cicluri, etichete, declarații condiționale, comenzi de intrare/ieșire și alte capabilități primitive conform standardelor moderne.

    Cea mai recentă versiune a apărut în 2010, numele ei este Fortran 2008 (cum puteți vedea, de-a lungul istoriei, numele a încetat să fie scris exclusiv cu litere mari), trăsătură distinctivă care sunt tot felul de calcule paralele, care au un efect pozitiv atât asupra vitezei de prelucrare a datelor, cât și asupra dimensiunii tablourilor procesate. În plus, lansarea Fortran 2015 este planificată pentru 2018. Din anunț rezultă că va îmbunătăți integrarea cu C și, de asemenea, va elimina deficiențele actuale.

    Printre cele mai populare 30 de limbaje de programare

    Până în prezent, 0,743% din solicitări în motoare de căutareÎn ceea ce privește limbajele de programare, acesta este dedicat special lui Fortran. Pentru a vă face o idee despre cât de tare este, imaginați-vă că limbi precum Lisp, Scala, Clojure, LabVIEW, Haskell, Rust și VHDL sunt clasate mai jos.

    Poate funcționa pe Android (și mai mult)

    De-a lungul istoriei sale lungi, compilatoarele pentru Fortana au fost dezvoltate de companii precum IBM, Microsoft, Compaq, HP, Oracle, datorită cărora limbajul este astăzi compatibil cu Windows, Mac OS și Linux. În plus, aplicație convenabilă cu compilatorul poate fi luat acum cu tine, datorită aplicației CCTools pentru Android. Puteți rula compilatorul pe iPhone, dar în acest caz trebuie să faceți puțină magie.

    Concurează cu MATLAB

    Până acum, acest text nu a spus principalul lucru, și anume domeniul de aplicare al Fortran. Deci, acesta este un limbaj solicitat în știință și inginerie, folosit în întregime sau parțial pentru prognoza meteo, oceanografie, dinamică moleculară și analiză seismologică. În general, acesta este un adevărat limbaj „Data Science” de pe vremea când calculatoarele au fost comercializate în masă.

    Merită să recunoaștem că Fortran își datorează o parte din popularitate moștenirii sale. De-a lungul anilor, practic fără concurență, limba a crescut bază imensă clienți, biblioteci și suplimente. În plus, fiecare următoarea versiune Fortran le susține inevitabil pe cele precedente. Prin urmare, a apărut o situație în care nu există factori semnificativi pentru ca oamenii de știință și ingineri să abandoneze această alianță.

    De fapt, principalul competitor al Fortran astăzi este MATLAB, care este mai universal, mai funcțional și mai convenabil. Cu toate acestea, MATLAB are limitări stricte cu privire la software-ul utilizat, este destul de scump și, în majoritatea cazurilor, este pur și simplu inutil.

    Are un viitor relativ luminos

    Desigur, nu putem prezice ce se va întâmpla peste 10-20 de ani și cum se va schimba lumea IT în acest timp. Cu toate acestea, dacă te uiți la posibili noi concurenți pentru Fortran (cum ar fi Go), lor dezavantajul principal- universalizare. Adică, creatorii Fortranului au conturat foarte repede public țintă sub forma oamenilor de știință, opiniile și dorințele lor au prioritate. Prin urmare, este greu de imaginat că mâine își vor abandona „comanda specială” de dragul unei tendințe de modă. Pe această bază putem spune că o altă generație de Fortran pleacă cu îndrăzneală.

    Și apoi vor lansa o nouă versiune.