Sunteți pe pagina 1din 13

Universitatea Tehnic Gheorghe Asachi din Iai Facultatea de Construcii i Instalaii Program de studii de master Ingineria Cldirilor

Tema nr. 1
- Referat

NECESITATEA I EVOLUIA LIMBAJELOR DE PROGRAMARE

Masterand: Roca Ioana-Loredana

Iai, octombrie 2013

Tema general: Limbajul de programare Fortran. Istoric. Locul limbajului Fortran ntre celelalte limbaje

NECESITATEA I EVOLUIA LIMBAJELOR DE PROGRAMARE


CAPITOLUL I - CALCULATORUL
1.1 Istoria calculatorului De-a lungul istoriei omul a fost nevoit s efectueze diferite calcule i mereu a cutat metode de rezolvare care s necesite un minim de efort manual i mintal. Prin urmare dup intense cercetri i ncercri au fost inventate maini pentru a calcula ct mai eficient. naintea calculatoarelor performante din zilele noastre, au existat alte maini de calcul. Momentul iniial al istoriei calculatoarelor este, de obicei legat de numele matematicianului englez Charles Babbage. El a propus n anul 1830 o Main Analitic care a anticipat n mod fascinant structura calculatoarelor actuale. Ideile sale au devansat cu peste 100 de ani posibilitiile tehnologice ale vremii sale. naintea sa au mai fost ncercari n acest domeniu din partea lui Leibnitz si Pascal (sec al XVII-lea). Urmtorul moment de referin este anul 1937, cnd Howard Aiken, de la Universitatea Harvard a propus Calculatorul cu secven de Comand Automat, bazat pe o combinaie ntre ideile lui Babbage i calculatoarele electromecanice, produse de firma IBM. Construcia acestuia a nceput n anul 1939 i s-a terminat n anul 1944, fiind denumit Mark I. El a fost n principal primul calculator electromecanic, fiind alcatuit din comutatoare si relee. nlocuirea releelor cu tuburi electronice a constituit un important pas nainte. Rezultatul a fost concretizat n calculatorul ENIAC ( Electronic Numerical Integrator And Computer ), primul calculator electronic digital. A fost realizat ntre 1942 i 1946 la Universitatea din Pennsylvania de ctre J. Presper Eckert i John Mauchly. Cntarea aproape 30 de tone, coninea peste 18 000 de tuburi electronice, executa 5.000 de adunri pe secund, avnd o memorie de 20 de numere reprezentate n zecimal i necesita peste 160 m2 de suprafa de podea. Programarea sa se realiza prin poziionarea a circa 6.000 de comutatoare cu mai multe poziii. O semnificaie aparte o are faptul c n arhitectura calculatoarelor Mark I i ENIAC, intrau mai multe elemente de calcul, ce lucrau n paralel la o problema comun, fiind dirijate de o singur unitate de comand. Aceast soluie a fost aleas datorit vitezei reduse a fiecrei uniti de calcul, n parte. La versiunea urmtoare s-a renunat la aceast structur paralel de calcul, deoarece s-a considerat c viteza unei unitti de calcul, realizat cu circuite electronice, este suficient. Soluia prelucrrii paralele a fost reluat ulterior dup anii 80' pentru mrirea performanelor unui sistem de calcul; astfel n 1996 Firma INTEL a realizat un supercalculator ce foloseste peste 7000 de procesoare PENTIUM utiliznd tehnica "de calcul masiv" (utilizat pentru simularea testelor nucleare, n cercetari genetice, spaiale, meteorologice). De remarcat c la realizarea primelor calculatoare, n calitate de consultant al echipei, a lucrat i matematicianul John von Neumann, unul dintre matematicienii importani ai secolului XX. De altfel, la realizarea calculatorului EDVAC ( primul calculator cu circuite electronice ) el a stabilit 5 caracteristici principale ale calculatorului cu program memorat: 1. Trebuie s posede un mediu de intrare, prin intermediul caruia s se poat introduce un numr nelimitat de operanzi i instruciuni. 2. Trebuie s posede o memorie, din care s se citeasca instruciunile i operanzii i n care s se poat memora rezultatele. 3. Trebuie s posede o seciune de calcul, capabil s efectueze operaii aritmetice i logice, asupra operanzilor din memorie. 4. Trebuie de asemenea s posede un mediu de ieire, prin intermediul cruia un numr nelimitat de rezultate s poat fi obinute de ctre utilizator.

5. Trebuie s aib o unitate de comand, capabil s interpreteze instruciunile obinute din memorie i capabil s selecteze diferite moduri de desfurare a activitii calculatorului pe baza rezultatelor calculelor. Primul calculator comercializat a fost UNIVAC (UNIversal Automatic Computer ) realizat pe structura calculatorului EDVAC, n anul 1951. n anii 1960 a aparut un nou tip de calculatoare: minicalculatoarele. Aceste maini erau mai ieftine, mai mici, nu aveau nevoie de aer condiionat i erau mult mai uor de folosit (cel puin dup standardele acelor timpuri) fa de mainframe-uri (computere mari i scumpe folosite de instituii guvernamentale i companii mari pentru procesarea de date importante pe domeniile: statistic, recensminte, cercetare i dezvoltare, proiectare, prognoz, planificarea produciei, tranzacii financiare .a.). Minicalculatoarele au nceput s fie introduse n universiti i alte instituii de nvamnt, pentru c erau ieftine. Piaa minicalculatoarelor a crescut repede. Imediat ce departamentele puteau justifica nevoia minicalculatorului, acesta era instalat. Acesta a fost momentul cnd DEC (Digital Equipment Corporation ) a devenit a doua mare companie productoare de calculatoare din lume. 1.2 Necesitatea calculatorului Calculatorul (sistem de calcul) este o main de prelucrat date i informaii conform unei liste de instruciuni numit program. Principala virtute a acestuia este viteza de operare (numrul ridicat de operaii realizate ntr-un interval scurt de timp).Utilizarea eficient a acestor echipamente este posibil prin programarea lor, transpunnd astfel gndirea omului n aceste maini. Folosirea sistemelor de calcul s-a extins astfel de la aplicaiile contabile, financiar-bancare, pn la aplicaiile inginereti, de la recunoaterea i sinteza sunetelor pn la modelarea virtual. Electronica i informatica, tehnicile de calcul i automatizrile, sistemele de comunicaii sunt domenii care fac parte din viaa noastr cotidian. Mai mult chiar, dezvoltarea acestor domenii a devenit o necesitate pentru modul n care se msoar azi progresul societii umane. La actualul grad de dezvoltare al tiinei i tehnicii volumul informaiilor a crescut foarte mult i continu s creasc n ritm accelerat. Cantitatea de informaii ce intervine n caracterizarea unui fenomen depinde pe de o parte de complexitatea acestuia, iar pe de alt parte de profunzimea cu care el trebuie cunoscut. n marea lor majoritate fenomenele sunt complexe i se urmrete descrierea lor ct mai exact. Pentru a putea manevra informaiile, acestea trebuie modelate. Informaia este constituit prin juxtapunerea de simboluri grupate convenional pentru a reprezenta evenimente, obiecte, idei i relaii ntre aceste diverse elemente. Modelul manevrabil al informaiilor considerate elementare poart denumirea generic de date. Conform celor enunate mai sus, este necesar deci s se prelucreze un volum mare de date. Pentru unele procese apar n plus condiii legate de precizia calculelor. Ca atare, de cele mai multe ori trebuie s se lucreze cu multe cifre semnificative, volumul calculelor crescnd astfel. De asemenea, timpul afectat rezolvrii problemelor, orict de complexe ar fi acestea,este limitat. Toate acestea atest utilitatea folosirii calculatoarelor care concomitent cu viteza mare de calcul pot asigura i precizii de calcul care satisfac exigenele, oferind o productivitate mrit. Totodat ele preiau o nsemnat parte din eforturile intelectuale necesitate de efectuarea calculelor, ceea ce permite concentrarea acestor eforturi asupra muncii de creaie. Paradoxal ns, prin volumul mare de calcule crete i efortul necesar stpnirii problemelor abordate i rezolvate, prin interpretarea corespunztoare a volumului crescut de rezultate. Deci n prezent, direct sau indirect, mijloacele moderne de calcul contribuie din plin la orice realizare a tiinei i tehnicii, n tot mai multe sectoare de activitate devenind nerentabil izolarea de calculator. Cele de mai sus constituie o explicaie a avntului extraordinar pe care informatica l-a nregistrat n ultimele decenii. Prin informatic (neologism creat n 1962 prin alturarea i juxtapunerea parial a cuvintelor informaie i automatic) se nelege n general tehnica prelucrrii automate i raionale a informaiei, suportul cunotinelor i al modului de comunicare uman. Avnd n vedere cantitatea i complexitatea informaiilor, putem afirma c mnemonica informatica acoper o arie larg a tehnicilor i metodologiilor legate de punerea n funciune a dispozitivelor

complexe reprezentate de calculatoare i sisteme informatice. Informatica se ocup att de natura informaiei (care-i servete drept materie prim), ct i de metodele care permit tratarea i prelucrarea lor, precum i de mijloacele care pot fi puse n funciune pentru efectuarea concret a acestei prelucrri. Domeniile de aplicare ale informaticii se regsesc n toate sferele de activitate ale lumii contemporane. La culegerea i prelucrarea automat a datelor, un rol deosebit este jucat de erorile ntlnite. Chiar dac acestea nu pot fi eliminate n totalitate, recunoaterea, stpnirea i limitarea acestora are un rol important din perspectiva rezultatelor urmrite. Exist trei categorii de erori ce nu pot fi eliminate, din acest motiv necesit o atenie deosebit pe parcursul tratrii datelor: 1. Erorile inerente care in de instrumentele de msur utilizate la achiziionarea datelor. 2. Erorile de metod se datoreaz modului de selectare a algoritmilor i procedeelor de prelucrare. Pentru aceeai problem se pot alege mai multe abordri, mai multe metode de rezolvare. Unele dintre aceste metode pot fi mai exacte dect altele, ns aplicarea unor metode indirecte va conduce inevitabil la considerarea unor tolerane n funcie de raportul de rentabilitatate generat de costuri i rezultate. 3. Erorile de calcul se nasc din modul de reprezentare valoric a datelor i rezultatelor. Spaiul fizic utilizat ca memorie pentru reprezentarea valorilor numerice fiind limitat, vor apare inevitabil trunchieri i rotunjiri. Din punctul de vedere al clasificrii calculatoarelor putem vorbi de trei clase mari: 1. Calculatoarele numerice (cifrice sau digitale) prelucreaz cantiti sau mrimi discrete reprezentate prin valori cu un numr finit de cifre de reprezentare semnificative. Avantajele principale ale acestor calculatoare constau n universalitatea utilizrii, precizia ridicat a soluiilor i adaptabilitatea structurii graie modulrii (n funcie de complexitatea problemei de rezolvat). Calculatoarele personale fac parte din aceast categorie. 2. Calculatoarele analogice opereaz cu mrimi ce pot varia continuu. Aceste calculatoare au un domeniu mai limitat de aplicare (din motive tehnologice) i se folosesc mai ales la rezolvarea unor probleme fizice, care din punct de vedere matematic se pot modela prin sisteme de ecuaii difereniale. Precizia soluiilor furnizate de aceste echipamente este limitat de precizia cu care funcioneaz diferitele componente ale calculatorului. Avnd n vedere c multe probleme ale mecanicii construciilor se pot modela matematic prin sisteme de ecuaii liniare (sau difereniale), au fost realizate n diferite ri i calculatoare specializate pentru rezolvarea unor asemenea probleme, dar avnd un domeniu restrns de aplicare nu au putut concura calculatoarele numerice universale. 3. Calculatoarele electronice mixte (hibride) rezult de fapt din asocierea celor dou clase precedente cumulnd avantajele lor. n cele ce urmeaz ne vom referi doar la calculatoarele numerice (nespecializate). Apariia i dezvoltarea calculatoarelor electronice este de un dinamism de-a dreptul exploziv. Pentru a marca din punct de vedere constructiv progresele nregistrate n aceast ramur a tiinei i tehnicii, perioada scurs din anul 1946 (cnd a aprut ENIAC, primul calculator electronic) i pn n prezent, a fost mprit n etape, fiecare reprezentnd o generaie de calculatoare. Calculatoarele din prima generaie (19461953) aveau urmtoarele caracteristici principale: utilizau tuburi electronice; aveau numai memorie intern cu o capacitate redus; pentru introducerea datelor i extragerea rezultatelor utilizau de regul band perforat; efectuau un numr de cteva sute pn la cteva mii de operaii elementare pe secund; scrierea programelor se fcea numai n cod main (sau prin conectic), totui conceptele de asamblor i subprogram sunt deja folosite; sigurana n funcionare era redus (a se vedea i originea termenului debugging: depanare prin eliminarea insectelor atrase de lumina tuburilor electronice noiunea a fost consacrat prin nsemnrile de ntreinere ale calculatorului Mark I de la universitatea Harvard).

Dup 1953 apar calculatoarele din generaia a doua, cu urmtoarele caracteristici: tuburile electronice sunt nlocuite cu tranzistori i se folosesc circuite imprimate; n afara memoriei interne (mai extinse dect la generaia precedent) apare i memoria extern (banda magnetic); viteza de operare crete (sute de mii de operaii elementare pe secund); elementele periferice se dezvolt foarte mult (pentru introducerea informaiei se utilizeaz cartele perforate, dar i benzi magnetice, la extragerea rezultatelor se folosesc imprimante rapide), apar limbajele de programare de nivel ridicat, asociate noiunii de macroasamblor; apar noiunile de hardware (ansamblul fizic al circuitelor logice ale calculatorului) i software (ansamblul programelor de deservire i operare livrate odat cu calculatorul). Calculatoarele din generaia a treia apar dup 1964 cnd firma IBM (International Business Machines) lanseaz calculatoarele din seria 360. Ele utilizeaz circuite miniaturizate, au memorii perfecionate, rapide, partea de software mbogindu-se foarte mult. Limbajele de programare se profileaz pe tipuri de probleme, apare noiunea de programare structurat. La calculatoarele din generaia a treia: apar concepii noi n exploatare ca: multitasking (executarea simultan ntreesut a mai multor programe), regimul time-sharing (utilizarea aceluiai calculator de ctre mai muli beneficiari simultan, prin acordarea de trane de timp succesive fiecruia, astfel nct un beneficiar s nu blocheze n exclusivitate calculatorul); ncep s fie folosite circuitele integrate (cu 310 circuite active/modul); apar sisteme elaborate pentru gestiunea fiierelor. ncepnd cu anul 1968 se vorbete deja de generaia a patra de calculatoare. Se consemneaz perfecionri tehnologice nsemnate n construcia memoriilor interne i externe, precum i n evoluia perifericelor. Aceste calculatoare utilizeaz circuite integrate cu un grad ridicat de integrare, cunoscute sub denumirea generic de chip-uri sau microchip-uri, numrul circuitelor active pe modul fiind foarte ridicat. Paii fcui ctre circuitele VLSI (Very Large Scale Integration) au asigurat capacitatea de prelucrare necesar construirii calculatoarelor personale, care reprezint o parte din calculatoarele din a patra generaie. Aceste aparate sunt de dimensiuni reduse, fiind eficiente i ieftine. Deoarece nu necesit condiii ambientale speciale, ele pot fi amplasate pe un birou, n locuine sau la diverse puncte de lucru, de exemplu n instituii, n magazine, la ieirea din supermarket (n ghieul de cas), n hale de producie, pe antiere etc. Paralel cu dezvoltarea aparatelor de dimensiune redus a crescut numrul programelor i aplicaiilor de utilizare ce se pot rula pe asemenea calculatoare. Printre acestea se gsesc jocuri, editoare de texte, tabele de calcul, pachete pentru gestionarea bazelor de date, programe grafice, programe de comunicare etc. Aceste calculatoare nu mai sunt cumprate, programate i controlate doar de ctre specialiti i administratori de sisteme. Ele se afl deja, n sensul adevrat, la ndemna utilizatorilor. De la mijlocul anilor 1980 se poate vorbi i de calculatoare din generaia a cincea, un concept revoluionar introdus de fapt de ctre japonezi, concept ce prevedea realizarea unor echipamente de calcul prin regndirea ndrznea a tehnologiilor i arhitecturilor existente. Elaborarea acestui concept a fost posibil datorit dezvoltrii tehnologice coroborate cu rezultatele cercetrilor n domeniul inteligenei artificale. Pn n prezent ns, raiunile economice, dirijate i de cerinele pieei, precum i valoarea investiiilor existente deja n domeniul produciei de componente i de calculatoare au frnat i au deturnat oarecum generalizarea pe aceast direcie de dezvoltare.

CAPITOLUL II LIMBAJELE DE PROGRAMARE


2.1 Necesitatea limbajelor de programare Relund definiia dat anterior termenului calculator (main de prelucrat date i informaii conform unei liste de instruciuni numit program), trebuie cunoscut faptul c programarea este un domeniu esenial al informaticii, iar fr programe (soft) calculatoarele (hard) ar rmne doar instrumente inutile i anoste nefiind capabile s fac nimic. Programele informatice, cu sinonimele - aplicaie, pachet de programe, produs-soft, software - sunt definite n literatura de specialitate n mai multe moduri. Astfel, A. Cozgarea n cartea sa intitulat Programarea calculatoarelor. Introducere n VB. Net definete programul informatic drept o succesiune logic de instruciuni sau expresii destinate executrii lor de ctre calculatorul electronic n vederea obinerii unor rezultate. Niklaus E. Wirth (printele limbajului Pascal) percepe programul informatic dup formula: Structuri de date + Algoritmi = Program. Ali specialiti, descriu programul sub forma unei funcii matematice: Ieiri = Program (Intrri). Sau, traducerea ntr-un limbaj de programare a unuia sau mai multor algoritmi. Caracteristicile (proprietile) fundamentale ale programelor sunt: - corectitudine: la date de intrare corecte se obin rezultate scontate; - robustee: face fa unor evenimente neprevzute; - reutilizabilitate; - compatibilitate; - portabilitate:poate fi executat pe calculatoare (platforme) diverse; - eficien: utilizeaz optim resursele de calcul; - claritate. Fazele realizrii unui program sunt:

n literatura de specialitate mai ntlnim i varianta: analiza, proiectarea, implementarea, testarea, exploatarea i ntreinerea.

Structura clasic a unui program Structura clasic a unui program este:

Noiunea de limbaj este definit ca un sistem pentru comunicare. Limbajele scrise folosesc simboluri (care sunt caractere) pentru a construi cuvinte. ntreg setul de cuvinte formeaz vocabularul limbajului. Modul n care cuvintele pot fi combinate pentru a fi nelese este definit de sintaxa i gramatica limbajului. Sensul dat de cuvinte sau combinaii de cuvinte este definit de semantica limbajului. n domeniul computerelor, limbajele umane sunt denumite limbaje naturale. Din nefericire computerele nu sunt de ajuns de sofisticate pentru a nelege limbajele naturale. Prin urmare comunicarea cu computerele se face prin intermediul unor limbaje specifice computerelor denumite limbaje de programare. Limbajele de programare sunt sisteme convenionale (limbaje artificiale) create de om i care servesc la exprimarea sub form de aciuni executabile mijlocit sau nemijlocit de ctre sistemul de calcul a algoritmului sau logicii de rezolvare a unei probleme. Noiunea de limbaj de programare este definit ca fiind ansamblul format de un vocabular i un set de reguli gramaticale, necesar instruirii unui computer pentru a realiza anumite activiti. Altfel spus limbajul de programare este o notaie sistematic prin care se descrie un proces de calcul. Sau mai simplu limbajul de programare reprezint o tehnic de comunicare dintre om i calculator, caracterizat prin vocabular, sintax i semantic proprii. Limbajul de programare se caracterizeaz prin: vocabular - mulimea cuvintelor rezervate, sintax - reguli de compunere a propoziiilor (instruciunilor sau expresiilor), regulile de punctuaie i semantic - semnificaiile atribuite cuvintelor i instruciunilor. Orice limbaj (natural sau artificial) presupune definirea sintaxei, semanticii i pragmaticii lui. Sintaxa este un set de reguli ce guverneaz alctuirea propoziiilor dintr-un limbaj. n cazul limbajelor de programare echivalentul propoziiei este programul. Semantica este un set de reguli ce determin nelesul sau semnificaia propoziiilor ntr-un limbaj. Pragmatica indic utilitatea practic a limbajului (uurina utilizrii, independena de sistemul de calcul etc.) Dup modul cum au evoluat n timp limbajele de programare pot fi: limbaje de prima generaie: limbajul main (machine language); limbaje de generaia a doua: limbajul de asamblare (assembly language); limbaje de generaia a treia: limbajele de nalt nivel (high-level programming languages); limbaje de generaia a 4-a : limbaje mai apropiate de limbajul uman dect limbajele de nalt nivel; limbaje de generaia a 5-a ndreptate spre exploatarea bazelor de cunotine , crearea sistemelor expert i spre rezolvarea problemelor legate de inteligena artificial.

Limbajele de programare pot fi clasificate dup mai multe criterii: a) dup distana fa de limbajul calculatorului n: - limbaje de nivel cobort (apropiate de calculator): cod main, de asamblare i macro-asamblare; - limbaje de nivel nalt (apropiate de programator); b) dup clasa de probleme pe care le rezolv n mod eficient n: - limbaje universale (pot rezolva mai multe clase de probleme); - limbaje specializate (pentru: domeniul tiinific, economic, inteligena artificial, etc.); c) dup modul de realizare al funciilor de prelucrare automat n: - limbaje procedurale (trebuie s programm ce s fac i cum s fac); - limbaje neprocedurale (trebuie s definim doar ce s fac). 2.2 Nivele ale limbajelor de programare "Nivelul" unui limbaj este apreciat prin poziia pe care o ocup pe scara constituit de limbajul recunoscut de microprocesor (limbaj main) i limbajul natural al programatorului (limba romna, limba englez). Un limbaj de nivel sczut este foarte apropiat de main, el lucreaz cu elemente de nivel hardware, fizic, cum ar fi: registru, microprocesor, locaie de memorie, port de intrare/ ieire etc. Caracteristici ale limbajului de nivel sczut: este limbajul pe care computerul l nelege n mod direct; n limbajul main programele se scriu n cod binar: succesiuni de 0 i 1; fiecare instruciune din limbajul main este o combinaie de 4 bits (LOAD-0000; ADD-0001); programatorul trebuie s cunoasc detaliat structura hardware a computerului; programatorul trebuie s gestioneze fr greeal alocarea adreselor de memorie pentru un program; pot aprea multe erori datorit: concepiei programului, sintaxei, suprapunerii adreselor de memorie, etc. Un limbaj de nivel nalt sau foarte nalt lucreaz cu concepte apropiate de limbajul natural, concepte de nivel logic, cum ar fi: colecie de date, nume de operaie (sort, writeln, open), variabile, constante (asemanatoare ca neles cu cele din matematic). Cu ajutorul unui limbaj de nivel nalt programatorul se face mult mai uor neles de ctre calculator. Uneori o singur linie de program scris cu un astfel de limbaj poate echivala cu sute de linii de program scrise n limbaj main. Deci din punct de vedere al reducerii timpului de realizare a unui program i al siguranei n funcionare (absena erorilor de programare) este de preferat un limbaj de nivel ct mai ridicat (nalt sau foarte nalt). n schimb, pe masur ce limbajul are un nivel mai ridicat execuia programului conceput cu ajutorul su va fi mai lent dect a unui program ce realizeaz aceleai operaii, dar este scris n limbaj de asamblare. Limbajul de asamblare permite folosirea codurilor simbolice pentru adrese, date i operaii. Are urmtoarele caracteristici: programele se scriu n mod text pentru ca apoi sa fie traduse ntr-o form binar corespunztoare limbajului main; limbajul de asamblare este tradus n limbaj main de ctre assembler; operaia se numete asamblare; limbajele de asamblare nc solicit programatorului cunoaterea de multe detalii hardware; sunt specifice anumitor tipuri de computere; limbajul de asamblare mpreun cu limbajul main formeaz categoria limbajelor de nivel sczut (low-level languages). O alt diferen esenial ntre cele dou tipuri de limbaje o reprezint portabilitatea, adic posibilitatea transferrii programelor pe un alt tip de masin dect cea pe care au fost construite. Din acest punct de vedere limbajul de asamblare este neportabil deoarece el este specific microprocesorului. Programele realizate pe un tip de main trebuie rescrise integral pentru noul tip de main, folosind un nou set de instruciuni - care de obicei difer foarte mult. Lucrurile stau

altfel cu programele concepute cu ajutorul unui limbaj de nivel nalt deoarece acestea sunt detaate de main. ntre un astfel de program i calculator se interpune compilatorul (sau interpretorul ) care rezolv corect transformarea fiierului-surs n fiier-executabil. 2.2.1 Limbaje procedurale - neprocedurale Cele dou tipuri de limbaje, procedurale i neprocedurale, se difereniaz prin nivelul de organizare (structurare ) a unui program. Limbajele neprocedurale sunt concepute pentru a gndi un program la nivel de instruciune, pe cnd cele procedurale oblig programatorul s conceap programe la nivel de bloc. ntr-un limbaj procedural (numit i limbaj structurat) programele sunt scrise instruciune cu instruciune, dar ele sunt organizate logic n blocuri (grupuri de instruciuni ) ce realizeaz o aciune bine determinat. n general un bloc are un punct de intrare i un punct de ieire - nu mai multe. Limbajul procedural ofer posibilitatea utilizrii unui nivel ridicat de concepere a unui program i duce la realizarea de programe coerente i protejate la erori. Prin contrast limbajele neprocedurale nu favorizeaz programatorul n a se desprinde de nivelul "instruciune " i duc deseori la programe greu de controlat - mai ales n cazul programelor de dimensiuni mari. Limbajele neprocedurale sunt nc preferate de unii utilizatori datorit timpului foarte scurt ct decurge nvarea i utlizarea lor. 2.2.2 Limbaje orientate Din punctul de vedere al aplicabilitii unui limbaj, limbajele pot fi orientate pe o anumit problem sau concepute pentru soluionarea oricrui tip de problem - limbaje de uz general sau altfel spus neorientate pe o problem. Limbajele orientate prezint un grad nalt de specificitate, pe cnd un limbaj neorientat reprezint un cadru general ce permite introducerea de ctre utilizator a conceptelor i prelucrrilor dorite. Astfel concluzia const n faptul c diferena esenial dintre cele dou tipuri de limbaje o constitue nivelul conceptual definit. Cele specializate posed deja integral suportul necesar i permit programatorului s se concentreze la ansamblul problemei, pe cnd cele nespecializate las n sarcina programatorului manevrarea nivelelor inferioare ale problemei. 2.2.3 Limbaje concurente Un limbaj concurent permite definirea de procese (prelucrri) paralele, execuia sa fiind ramificat la un anumit moment de timp. Prin contrast limbajele neconcurente (majoritatea limbajelor) au o desfurare liniar, fiind activ un singur proces la un moment dat. Procesele concurente presupun n mod obligatoriu un sistem multi-tasking ce poate gestiona mai multe "sarcini" la un moment dat. 2.3 Limbaje de nivel nalt neorientate 2.3.1 BASIC A fost creat n 1964 la Darmooth College (S.U.A.). Denumirea sa provine de la iniialele cuvintelor Beginner's Allpurpose Symbolic Instruction Code (Cod de instruciuni simbolice de uz general destinat nceptorilor). Are urmtoarele caracteristici fundamentale : - simplu de nvat; instruciunile sale sunt cuvinte din limba englez sau prescurtri ale acestora ; - neorientat pe un anumit tip de problem; permite construirea de aplicaii; - este un limbaj nestructurat ceea ce i permite s fie uor nvat. Din cauz c a cunoscut o larg rspndire au fost implementate noi versiuni de Basic: GW-BASIC, QUICK BASIC, TURBO BASIC, VISUAL BASIC (Basic for Windows).

2.3.2 FORTRAN Limbajul Fortran este decanul de vrst al limbajelor de larg folosin. A aprut n 1956 i i datoreaz numele prescurtrii cuvintelor: FORmula TRANslation (Traducere de formule). Iniial reprezenta un limbaj orientat pe calcule tiinifice avnd definite concepte precum: matrice, funcii trigonometrice, numere reale n dubla precizie. 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 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 n 1978 (ANSI X3.9), ea fiind adoptat i de ISO (International Standardization Organization) n 1980 ca norm internaional, aprnd astfel versiunea cea mai cunoscut a limbajului, sub denumirea Fortran 77. Caracterul relativ conservator al acestui standard a lsat limbajului un numr de faciliti ce preau din ce n ce mai depite de ctre noile limbaje de programare aprute (unele derivate n parte chiar din Fortran), aa c n mod firesc din anii 1980 s-a trecut la dezvoltarea acestuia (sub numele Fortran 8x). Dei limbaje ca Algol, Basic, Pascal i Ada erau mai uor de nvat i de utilizat, ele nu se puteau compara cu eficiena dovedit de Fortran n ceea ce privea viteza de calcul i compactitatea codului generat. A treia standardizare a limbajului Fortran s-a produs abia n 1991, versiunea limbajului primind numele Fortran 90. Aceast ntrziere a dus la accentuarea competiiei n privina popularitii limbajelor de programare, avnd efecte negative asupra limbajului Fortran. Chiar adepi convini ai acestui limbaj au migrat ctre limbaje ca C sau C++, n ciuda lipsei de performane n calcule ale acestora. Prin includerea complet a versiunii anterioare (Fortran 77) alturi de noutile introduse, oferind flexibilitate i performane remarcabile, noua versiune a limbajului Fortran a reuit s se impun n rndul programatorilor, permind realizarea programelor n moduri adecvate mediilor moderne. Prin extinderea limbajului n direcia procesrii paralele s-a standardizat HPF (High Performance Fortran) n 1993. 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. Ultima versiune a limbajului este cea din anul 2000, purtnd numele sugestiv Fortran 2000. Versiunile ulterioare care au cunoscut o mare popularitate au extins posibilitile limbajului trasformndu-l ntr-un limbaj eficient de uz general. n prezent exist pentru IBM-PC dou implementri mai importante ale limbajului: Microsoft Fortran, Fortran for Windows. 2.3.3 PASCAL Conceptualizat n anul 1970 de ctre Niklaus Wirth, limbajul PASCAL poart numele matematicianului i filosofului BLAISE PASCAL n semn de recunoatere a meritelor sale n teoretizarea mainilor de calcul. Creat dup acumularea de cunotiine temeinice n tiina limbajelor formale din confruntarea cu probleme concrete ale programrii, limbajul PASCAL a constituit la vremea respectiv un limbaj modern, meninndu-se ca atare i n prezent datorit faptului c poseda o solid baz conceptual .

Limbajul PASCAL a introdus n versiunea sa iniial noiunea de programare structurat i ulterior noiunile de date (structuri) dinamice, date (structuri) definite de utilizator. n prezent standardul implementrilor PASCAL cuprinde urmtoarele elemente: - programare structurat de tip algoritmic; - definirea de noi funcii sau proceduri; - tipuri de date definibile de ctre utilizator; - structuri de date dinamice; - adresri indirecte ale datelor; - recursivitate; - rutine complete de intrare/ieire; - funcii de conversie a datelor din ASCII n format intern i invers; - set complet de funcii matematice; - funcii elementare de grafic 2D; - posibilitatea inserrii direct n surs a instruciunilor n limbaj de asamblare; - posibilitatea definirii de overlay-uri pentru program. Versiunile standard ale implementrilor PASCAL sunt cele oferite de Microsoft i Borland cu avantaj pentru cele din urm (TURBO PASCAL 5.0, TURBO PASCAL 5.5) datorit mediului de lucru performant (de tip "TURBO"). Combinaia PASCAL + TURBO a reprezentat un succes imens n rndul programatorilor avnd ca singur rival cealalt combinaie: C+TURBO. 2.3.4 Limbajul C Acest limbaj de programare, cu cel mai scurt nume, a fost creat n 1971 de ctre Dennis Ritchie i Brian Kernigham pentru dezvoltarea sistemului de operare UNIX. Principalele caracteristici ale limbajului sunt: - limbaj structurat de nivel nalt; - posed concepte de nivel sczut ceea ce permite exploatarea portabil a caracteristicilor intime unei maini; - rutine de conversie a datelor foarte evoluate; - tipuri de date definibile de ctre utilizator; - gestionarea elaborat a datelor de tip dinamic; - definirea de noi funcii; - adresri indirecte ale datelor, variabilelor (pointer-i); - recursivitate; - set complet de funcii matematice; - funcii pentru realizarea de grafic elementar 2D; - funcii de apel servicii DOS; - posibilitatea definirii de overlay-uri pentru un program; - concizie deosebit a limbajului. Pentru versiunile standard ale implementrilor limbajului C exist medii de programare de tip "TURBO" ce aparin firmelor: Microsoft - produsul QUICK C i firmei Borland - produsele TURBO C. 2.3.5 Limbajul ADA A fost creat special pentru a gestiona totalitatea aplicaiilor dezvoltate i utilizate de N.A.S.A. Noutatea limbajului (de tip structurat, algoritmic) o constituie concurena, deci posibilitatea lansrii de procese paralele (sincronizate interactiv n finalul execuiei lor). Saltul calitativ este evident i deschide un nou domeniu n programare, dar nu pentru IBM-PC. Versiunile implementrilor limbajului ADA pe IBM-PC nu posed tocmai aceast parte de concuren, reducnd limbajul la un simplu limbaj structurat de uz general. Deci ADA este un limbaj ultramodern din punct de vedere teoretic, dar ineficient din punct de vedere practic pentru

IBM-PC-uri. 2.4 Limbaje orientate pe calcul matematic simbolic Specialitii din domeniul cercetrii matematice au la dispoziie unelte de lucru extrem de utile pentru eliminarea calculului matematic rutinier. n acest scop au fost create limbaje de programare care pot recunoate i rezolva formule sau ecuaii matematice complexe. Expresiile manevrate pot continua operaii algebrice elementare, operatori de derivare, de integrare, operatori difereniali care sunt recunoscui de sistem ca atare. n plus sunt oferite instruciuni absolut necesare pentru a controla un program. Cele mai importante produse de acest gen sunt REDUCE, SYMNON, MATHCAD, MATHEMATICA i MATHLAB.

Bibliografie: 1) http://www.scritube.com/stiinta/informatica/EVOLUTIA-LIMBAJELOR-DEPROGRAM1452351519.php 2) Gobesz, Z., Bacoiu, C. Iniiere n programare i n limbajul Fortran 3) http://ro.wikipedia.org/wiki/Calculator 4) https://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC4QFjAA&url=ht tp%3A%2F%2Fwww.cig.ase.ro%2Fprof%2Fpg1953%2Fresurse%2FU1%2520PROGRAMARE% 2520SI%2520LIMBAJE%2520DE%2520PROGRAMARE.doc&ei=OGdkUpyhBYqY0QXu0IGY Bg&usg=AFQjCNHGyARjgVJCoBWEGQ3t51zS8Mjdfw&sig2=bVOPbw9g_D5WKzLD3jIbag& bvm=bv.54934254,d.d2k U1 Programare si limbaje de programare