Sunteți pe pagina 1din 6

UNIVERSITATEA TEHNIC GHEORGHE ASACHI DIN IAI

Facultatea de Construcii i Instalaii


Program de studii de master :Inginerie Structural

TEMA NR.1

Limbaje de programare.Evolutia limbajului de programare Fortran


~referat~

Masterand:
Schipor Oana
Inginerie Structural

2013-2014

De la Fortran 77 la Fortran 95

LIMBAJE DE PROGRAMARE

Limbajele de programare sunt instrumente de lucru pe calculatoare care pot traduce


algoritmii de rezolvarea unei probleme n instruciuni ce pot fi nelese de ctre calculator prin
intermediul unor programe speciale.Operaia de elaborare i de descriere a programului pentru
un calculator este specific numai prelucrrii automate.Comunicarea ctre calculator a
informaiilor utilizatorului se face ntr-o form perceptibil acestuia,ntr-un anumit limbaj
accesibil calculatorului,numit limbaj de programare.Acestea sunt limbaje artificiale,care conin o
anumit structur gramatical i cuvinte care alctuiesc instruciunile sale.
n general,o problem este transpus n calculator printr-un algoritm de rezolvare tradus n
instruciuni specifice unui limbaj de programare.Aceste instruciuni alctuiesc aa numitul
program surs.
Cu ajutorul unui program special,numit compilator,programul surs este transformat n
limbajul calculatorului,n mod automat,ntr-un program care se numete cod obiect.n locul
compilatorului poate exista un program care interpreteaz i execut fiecare instruciune
introdus de la tastatur.Acest program se numete interpretor i este foarte des utilizat,n special
pe calculatoarele personale.
Aproape toate calculatoarele posed compilatoare sau translatoare pentru mai multe limbaje
de programare.
Exist numeroase limbaje de programare utilizate astzi pe toate sistemele de calcul,de la
macrosisteme la mini i microsisteme.Dintre acestea cele mai cunoscute i mai utilizate sunt
urmtoarele:COBOL,FORTRAN,BASIC,PASCAL,ALGOL,C,C++,LISP,PROLOG etc.

LIMBAJUL DE PROGRAMARE FORTRAN

ISTORIC

Primul limbaj algoritmic de nivel nal este considerat Fortran.Acesta a aprut n noiembrie
1954,iar numele su i are originea din "Formula Translating System, dezvoltarea lui fiind
iniiat de ctre o echip remarcabil de programatori de la IBM (sub conducerea lui John
Backus). Din anul 1957 se poate vorbi de limbajul i compilatorul Fortran I, destinate iniial
calculatorului IBM 704. Fiind primul limbaj algoritmic aprut, oferind o serie de avantaje fa de
limbajul de asamblare, a fost adoptat foarte repede de comunitile tiinifice din toate domeniile.
Acest succes a concurat la dezvoltarea fireasc a limbajului, aprnd variante ca Fortran II
n 1957, Fortran III n 1958, Fortran IV n 1962 precum i convertoare pentru a menine
compatibilitatea cu programele scrise n versiunile anterioare. n luna mai a anului 1962 a

2013-2014

De la Fortran 77 la Fortran 95
devenit primul limbaj de nivel nalt standardizat oficial, iar n 1966 a fost adoptat primul
standard ANSI (American National Standards Institute) referitor la Fortran IV ,acesta
primind denumirea oficial de Fortran 66 ANS. Aceast versiune a fost urmat de Fortran
V, respectiv de alte tentative de dezvoltare.
Pn la mijlocul anilor 1970 aproape toate calculatoarele mici i mari dispuneau de
compilatoare pentru Fortran 66, acesta fiind limbajul de programare cel mai rspndit.
Cu trecerea timpului i cu dezvoltarea limbajului, definiia standardizat a fost actualizat
sub denumirea Fortran 77.
A treia standardizare a limbajului Fortran s-a produs abia n 1991, versiunea limbajului
primind numele Fortran 90,ceea ce a accentuat competiia n privina popularitii limbajelor de
programare.n anul 1996 s-a dat publicitii a patra standardizare a limbajului Fortran, acesta
primind numele Fortran 95, la care s-au adugat nc dou rapoarte tehnice elaborate sub
egida ISO. Ultimele versiuni ale limbajului sunt Fortran 2003,Fortran 2008.
Fortran este un limbaj de programare potrivit n special pentru calcule numerice i calcule
tiinifice.Acesta este primul care a introdus i definit concepte ca variabile, expresii, enunuri,
iterative,subrutine compilate separate i formatele de intrare sau ieire a datelor.Este un limbaj
compilat,structurat,recomandat i folosit n domenii tiinifice i inginereti.
Caracteristica esenial a limbajului este modul algebric de scriere a instruciunilor,fapt care
determin o uoar transformare a formulelor matematice n instruciuni.
Prin evoluie limbajul a devenit deosebit de complex,i permite scrierea de programe
compacte i bine structurate,i din acest motiv este recomandat ca tehnic de programare.
Un program scris n acest limbaj poate s conin una sau mai multe seciuni (numite uneori
module). Seciunile de program sunt segmente de instruciuni i/sau de date ce pot fi nglobate n
unul sau mai multe fiiere. Acestea pot fi compilate i separat, ns la construirea programului
executabil ele vor fi reunite, mpreun cu bibliotecile necesare.Pentru redactarea fiierelor ce
conin segmentele de program se poate apela la orice editor de text ce genereaz fiiere cu
coninut afiabil curat.

DE LA FORTRAN 77 LA FORTRAN 95
Dezvoltarea limbajului Fortran 77 a survenit,n mod firesc, ca o necesitate pentru susinerea
i adaptarea programelor deja existente,pe lng realizarea de aplicaii noi, moderne i
competitive, n pas cu dezvoltarea domeniillor tiinifice conexe i cu cerinele utilizatorilor
de programe.
Aspectele imputate n general versiunii consacrate a limbajului Fortran 77
sunt urmtoarele:
Lipsa facilitilor de stocare dinamic;
Lipsa tipurilor i structurilor de date definite de utilizator (exceptnd blocul
COMMON, considerat chiar revoluionar la momentul apariiei);

2013-2014

De la Fortran 77 la Fortran 95
Uurina cu care se pot comite greeli nesesizate de compilator, n special la
apelarea procedurilor (subprograme sau funcii);
Portabilitatea uneori limitat a programelor (de multe ori coninnd caracteristici
dependente de platform, mai ales n cazul folosirii extensiilor specifice);
Structurile de control sunt slabe (de multe ori nu se pot evita instruciunile de salt
ceea ce conduce la complicarea nelegerii codului);
Reguli arhaice rmase din era cartelelor perforate (format fix pe 80 de coloane,
nume simbolice limitate la 6 caractere, etc.).
Schimbrile eseniale aduse de limbajul Fortran 90 sunt considerate a fi urmtoarele:
Format liber la scrierea sursei, concomitent cu alte mbuntiri simple;
Tablouri ca i obiecte, expresii de tablouri, asignri i funcii;
Alocare dinamic a memoriei, pointeri ce permit construcii de structure complexe i dinamice
de date;
Tipuri de date definite de utilizator (pe lng posibilitatea definirii unor operatori noi, operatorii
existeni pot fi redefinii prin suprancrcare);
Modulul o unitate de program care poate conine date i seturi de procedure conexe
(subprograme sau funcii). Se pot implementa clase i funcii aparintoare pentru programarea
orientat pe obiecte;
Procedurile pot fi recursive, pot avea nume generice, argumente opionale etc.;
Structuri noi de control (cum ar fi: SELECT CASE, CYCLCYCLE, EXIT) care permit
restrngerea utilizrii etichetelor i a salturilor explicite.
Astfel,n Fortran 90 programele pot fi redactate astfel ntr-o manier mai simpl, uurnd
ntreinerea lor. Codul generat poate deveni mai sigur i mai stabil deoarece compilatorul poate
detecta mult mai multe greeli n cazul utilizrii caracteristicilor de securitate avansat.
Programele sunt mai portabile, rmnnd foarte puine trsturi legate de main, nevoia de a
utiliza extensii specifice unor platforme fiind redus.
Compilatoarele Fortran 77 realizeaz n general stocarea variabilelor n mod static, deci
omiterea opiunii SAVE nu avea repercursiuni semnificative. Majoritatea sistemelor Fortran
90 stocheaz ns local variabilele, n proceduri (prin stiv), folosind alocare static doar
atunci cnd e nevoie aa c omiterea opiunii SAVE n cadrul surselor vechi poate crea anumite
probleme.
n Fortran 77 se scrie doar o singur instruciune ntr-un rnd,pe cnd n versiunea 90 a
limbajului se admite scrierea mai multor instruciuni pe un rnd.Deasemeni modul de redactare
al sursei poate fi diferit,i anume format fix in Fortran 77, pe cnd sursa unui program poate fi
scris n Fortran 90 att n form liber, ct i n form fix,dar cele dou formate nu pot fi
amestecate.
Dac conveniile versiunilor mai vechi ale limbajului au permis utilizarea a doar 8 caractere
(alctuite din caractere alfanumerice i caracterul special $), Fortran 90 permite utilizarea a 31 de
caractere (alctuite din caractere alfanumerice, caracterul special $ i caracterul special _).
n Fortran 90 exist patru tipuri de uniti de program:
1. Programul principal (Main care ncepe cu declaraia PROGRAM).
2. Proceduri externe sau subprograme (ce ncep fie cu declaraia SUBROUTINE, fie cu

2013-2014

De la Fortran 77 la Fortran 95
FUNCTION).
3. Uniti cu blocuri de date (specificai prin declaraia BLOCK DATA).
4. Module,ce pot conine orice combinaie a
urmtoarelor elemente:
- definiii de constante;
- definiii de date derivate (structuri de date);
- declaraii de stocare;
- proceduri (subprograme i funcii).
n varianta anterioar a limbajului Fortran nu exista instruciune corespunztoare
reprezentrii primitivei alternative generalizate. Pentru traducerea unei asemenea structuri din
pseudocod sau dintr-o schem logic era nevoie fie de un set de instruciuni de salt calculate cu
multitudinea de etichete corespunztoare, fie de un set de instruciuni IF (ELSE IF) care rezulta
destul de complex. n Fortran 90, asemenea structuri se pot scrie foarte uor prin utilizarea
instruciunii SELECT CASE.
i n ceea ce privete instruciunile de repetare s-au fcut mbuntiri semnificative.
Instruciunea DO a fost actualizat n Fortran 90, eticheta ce marca sfritul modulului
de repetat nemaifiind necesar, ea fiind nlocuit prin instruciunea END DO.
Funciile se puteau defini n Fortran 77 n dou moduri: printr-o singur expresie (pe o
linie) sau ca modul extern.n Fortran 90 exist ns posibilitatea declarrii unor proceduri interne,
ntr-o manier structurat.
Aceste proceduri de modul au acces direct la toate definiiile de date i specificaii de stocare
prin asociere. Permit ncapsularea datelor i a mulimii de proceduri ce opereaz cu aceste date
sau ce folosesc zona de stocare pentru schimb de valori.Toate variabilele din modul sunt
accesibile n mod implicit tuturor programelor care utilizeaz modulul. Modulele permit
ncapsularea unei structuri de date mpreun cu mulimea procedurilor ce-l manipuleaz, ceea ce
n programarea orientat obiect nseamn c ele pot conine o clas i metodele acesteia. Atunci
cnd o procedur de metod este apelat, se spune c este vorba de o interfa explicit, ceea ce
nseamn c compilatorul poate verifica consistena argumentelor actuale efective i fictive.
Aceasta se consider o trstur foarte valoroas deoarece n Fortran 77 asemenea interfee nu se
puteau verifica i erorile erau obinuite din aceast cauz. Din acest punct de vedere, utilizarea
modulelor se dovedete mai avantajoas dect folosirea blocurilor comune (COMMON), a
blocurilor de date (BLOCK DATA) sau a punctelor de intrare (ENTRY).
Anumite aspecte din Fortran au fost considerate depite astfel nct au fost excluse din
standardele noi ale limbajului.Dup saltul imens produs de apariia standardului Fortran 90
limbajul a fost dezvoltat n continuare, iar pn n 1996 s-a elaborat o nou versiune sub
specificaia de Fortran 95. Diferenele dintre aceste dou versiuni nu sunt att de mari, ns
caracteristicile considerate depite au fost lsate uitrii.Folosirea lor nu este recomandat,
chiar dac unele compilatoare Fortran 95 semnaleaz doar erori de atenionare la ntlnirea
acestora.Dintre aceste aspecte problematice putem aminti:
Cicluri DO cu variabil de control de tip real (sau dubl precizie);

2013-2014

De la Fortran 77 la Fortran 95
Cicluri DO finalizate prin alte instruciuni dect CONTINUE sau END DO;
Dou sau mai multe cicluri DO (incluse) finalizate prin aceeai instruciune;
Instruciunea IF aritmetic;
Folosirea constantelor Hollerith (sau descriptorului H) n listele de descriptori din instruciunile
FORMAT;
Folosirea instruciunii PAUSE (se poate nlocui lesne cu o instruciune de citire fr list de
intrare);
Folosirea instruciunii ASSIGN (i implicit a instruciunii GO TO asignate, a etichetelor
asignate pentru FORMAT etc.);
Folosirea facilitii de revenire (RETURN) alternative;
Specificarea unei ramuri ctre instruciunea END IF din afara blocului IF
Dintre principalele caracteristici noi ale limbajului Fortran 95 menionm:
Instruciunea FORALL (i facilitile noi oferite i pentru WHERE);
Subprogramele pure (PURE) i elementare (ELEMENTAL) definite de utilizator;
Starea de asociere iniial a pointerilor, prin => NULL();
Iniializarea implicit a obiectelor de tip derivat;
Referirile la proceduri pure n expresiile de specificare;
Dealocarea automat a tablourilor alocabile;
Formatarea prin specificator cu lungime zero produce considerarea numrului minim de poziii
necesare (de exemplu: I0);
Noua funcie intrinsec CPU_TIME;
Schimbri ale unor funcii intrinseci etc.
Versiunile recente conin i posibiliti de programare structurat i alte mbuntiri.
Limbajul Fortran rmne unul dintre cele mai potrivite limbaje de programare pentru rezolvarea
pe calculator a calculelor tehnico-tiinifice.

Bibliografie

Iniiere n programare i n limbajul Fortran-C. Bacoiu,Z. Gobesz;


Elemente de Fortran 95-Dan Racoi;
Tehnici i limbaje de programare-Valeriu Lupu;
Programarea n limbajul Fortran-Octavian Petru;
Fortran:iniiere n programare structurat-Stelian Niculescu;

2013-2014

S-ar putea să vă placă și