referat, referate , referat romana, referat istorie, referat geografie, referat fizica, referat engleza, referat chimie, referat franceza, referat biologie
 
Astronomie Istorie Marketing Matematica
Medicina Psihologie Religie Romana
Arte Plastice Spaniola Mecanica Informatica
Germana Biologie Chimie Diverse
Drept Economie Engleza Filozofie
Fizica Franceza Geografie Educatie Fizica
 

Evolutia limbajelor de programare

Categoria: Referat Informatica

Descriere:

Noţiunea 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 înţelese este definit de sintaxa şi gramatica limbajului. Sensul dat de cuvinte sau combinaţii de cuvinte este definit de semantica limbajului...

Varianta Printabila 


1 A3. Generalităţi privind limbajele de programare

Introducere

Noţiunea 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 nţelese este definit de sintaxa şi gramatica limbajului. Sensul dat de cuvinte sau combinaţii 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 nţelege limbajele naturale. Prin urmare comunicarea cu computerele se face prin intermediul unor limbaje specifice computerelor denumite limbaje de programre.

Noţiunea 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 activităţi.
După modul cum au evoluat n timp limbajele de programare pot fi:
•    limbaje de prima generaţie: limbajul maşină (machine language);
•    limbaje de generaţia a doua: limbajul de asamblare (assembly language);
•    limbaje de generaţia a treia: limbajele de nalt nivel (high-level programming languages);
•    limbaje de generaţia a patra: limbaje mai apropiate de limbajul uman dect limbajele de nalt nivel (ex. de comandă: FIND ALL RECORDS WHERE NAME IS "SMITH" )
n figura de mai jos sunt prezentate primele trei generaţii de limbaje de programare şi modul cum interacţionează acestea cu computerul.
 

Figura




Limbajul maşină

Cnd un computer urmează instrucţiunile unui program se spune că programul este n execuţie (running). nainte de a fi executat programul trebuie să fir rezident n memorie. Adică programul trebuie să ocupe un set de bytes consecutivi n memorie. Totodată programul trebuie scris ntr-un limbaj maşină intern. Fiecare tip de procesor are propriul limbaj maşină. Acesta este conceptul de bază cu privire la modul de execuţie a unui program. Faptul că programul ce se execută este stocat (chiar şi parţial) n memoria  principală (RAM) duce la concluzia că numai prin schimbarea programului din memoria RAM computerul poate trece la execuţia altui proces (task)/program.
Aşa cum s-a prezentat mai sus toate computerele au un limbaj maşină intern (specific tipului de procesor). Acest limbaj este codat ntr-o reprezentare binară şi este foarte greoi (plictisitor) de utilizat pentru scrierea unui program. Majoritatea instrucţiunilor programului vor conţine astfel două părţi:
•    o parte care se referă la operaţia de codare – se vor indica ordinea operaţiilor;
•    o parte care se referă la adresa din meorie -  indică locaţia de memorie ce se va utiliza ca operand al instrucţiunii.

operation
code    address
    meaning

00010101     10100001     load c(129) into accumulator
00010111     10100010     add c(130) to accumulator
00010110     10100011     store c(accumulator) in location 131

Astfel programatorii care utilizează limbajul maşină vor trebuie să fie atenţi n ce zone de memorie se vor stoca date şi n ce zone de memorie se vor executa programele (instrucţiunile). Astfel pot apărea erori de programare datorate suprapunerii scrierii instrucţiunilor peste date. Prin urmare programarea n limbaj maşină presupune o bună capacitate de a interpreta datele şi instrucţiunile la nivel de bit. Totodată aceasta reprezintă si posibilitatea de a se genera alte  programe şi de a le executa.
Concluzii:
•    este limbajul pe care computerul l nţelege n mod direct;
•    n limbajul maşină programele se scriu n cod binar: succesiuni de 0 şi 1;
•    fiecare instrucţiune din limbajul maşină este o combinaţie de 4 bits (LOAD-0000;ADD-0001);
•    programatorul trebuie să cunoască detaliat structura hardware a computerului;
•    programatorul trebuie să gestioneze fără greşeală alocarea adreselor de memorie pentru un program;
•    pot apărea multe erori datorită: concepţiei programului, sintaxei, suprapunerii adreselor de memorie, etc.

Limbajul de asamblare

Atenţia necesară evitării ocupării aceloraşi adrese de memorie  este foarte solicitantă (greoaie) n programarea n limbaj maşină. Astfel dacă programatorul modifică un program şi decide să mai introducă ceva atunci toate celelalte adrese de memorie utilizate pnă atunci se vor schimba şi trebuie să examineze ntregul program din nou şi să decidă iarăşi cu privire la modul cum va aloca memoria datelor şi instrucţiunilor.
Astfel au apărut ncepnd cu 1950 limbajele de asamblare care sunt forme mai prietenoase ale limbajului maşină. Astfel comenzile limbajului maşină au fot nlocuite de comenzi mnemonice (gestionează memoria!!! – nu e foarte ortodoxă). Astfel limbajul de asamblare are grijă să convertească comenzile mnemonice n comenzile corespunzătoare limbajului maşină. Programatorul poate folosi adrese simbolice pentru reprezentarea datelor. Acest limbaj va atribui adresele n limbaj maşină şi va verifica dacă datele distincte nu se suprapun la stocare. Astfel scurtul program de mai sus se poate scrie n limbaj de asamblare astfel:
 
operation
code    address

LOAD     A
ADD     B
STORE     C
Evident acest limbaj evită o multitudine de erori de alocare a memoriei. Limbajul de asamblare presupune existenţa unui program numit assembler care să traducă programele n  limbaj maşină. Asamblorul nlocuieşte codarea mnemonica (cum ar fi ADD) cu coduri binare corespunzătoare limbajului maşină şi alocă adrese de memorie pentru toate variabilele simbolice utilizate (A, B, C ) şi se asigură că aceste adrese sunt distincte.
Astfel prin uşurarea procesului de programare s-a introdus un nou nivel de procesare pentru computer. Astăzi limbajele de asamblare sunt ncă utilizate pentru unele programe critice deoarece aceste limbaje conferă programatorului un control foarte precis a ceea ce se ntmplă n computer. Limbajele de programare ncă necesită ca programatorul să aibă foarte bune cunoştinţe cu privire la structura internă a computerului. Limbajele de asamblare sunt şi ele specifice computerului pe care rulează astfel că programatorul trebuie sa-şi rescrie programul pentru un alt tip de computer.   

Concluzii:
•    programele se scriu n mod text pentra ca apoi sa fie traduse intr-o formă binară corespunzătoare limbajului maşină;
•    limbajul de asamblare este tradus n limbaj maşină de către assembler;
•    limbajele de asamblare ncă solicită programatorului cunoaşterea de multe detalii hardware;
•    sunt specifice anumitor tipuri de computere;
•    limbajul de asamblare mpreună cu limbajul maşină formează categoria limbajelor de nivel scăzut (low-level languages).




1 Limbajele evoluate (High level Languages)

Evident că de la apariţia computerului tot s-a pus problema de a se obţine un proces de  programare ct mai uşor. Aceasta ar presupune ca activitatea de programare sa se poată face cu un bagaj de cunoştinţe cu privire la funcţionarea internă a computerului ct mai mic. După cum s-a văzut anterior limbajul maşină şi limbajul de asamblare presupune o bună cunoaşterea funcţionării interne a computerului.
O altă direcţie pentru uşurarea programării ar fi aceea ca programele să fie prezentate ntr-o limbă ct mai familiară persoanei care doreşte să programeze (să rezolve o anumită problemă).
Astfel au apărut programarea de nalt nivel care permite formularea soluţiilor problemei de rezolvat n termeni mai apropiaţi de cei folosiţi de oameni. Aceste limbaje au fost concepute pentru a permite programării să fie mult mai uşoară şi cu mai puţine erori iar programatorul nu trebuie să cunoască detalii cu privire la  structura internă a unui anumit tip de computer.
Aceste limbaje sunt mult mai apropiate de limbajul uman.
Primul limbaj evoluat a fost FORTRAN II apărut n 1958. Programul prezentat mai sus se poate scrie n acest limbaj astfel:

C=A+B

Se observă că spre deosebire de limbajul maşină şi limbajul de asamblare expresia de mai sus este mul mai uşor de nţeles, mai rapid de scris şi evită multe erori de scriere.

Pentru a putea fi executate, ca şi n cazul limbajului de asamblare, computerul nu nţelege n mod direct aceste limbaje evolute şi de aceea ele trebuie procesate printr-un program specializat care traduce limbajele evolute n limbajul maşină intern al computerului respectiv. După modul cum se face această transpunere a programelor evoluate există două tipuri de astfel de programe specializate:
•    interpretor: traduce succesiv instrucţiunile de nalt nivel ntr-o formă intermediară care este apoi executată.
•    compiler: traduce instrucţiunile de nalt nivel direct n limbaj maşină.

Avantajul interpretorului este că poate execută un program imediat. Compilatorul necesită mai mult timp. Programele produse de compilator rulează mul mai rapid dect cele produse de interpretor.
Majoritatea programelor evolute au la dispoziţie att compiler ct şi interpretor. De obicei interpretorul se foloseşte n timpul realizării unui program pentru testarea unor mici secţiuni ale programului. Unele limbaje evoluate sunt concepute să lucreze numai cu interpretor (BASIC, LISP).


Un alt mare avantaj al limbajelor evoluate este acela că dacă limbajele sunt standardizate atunci fiecare producător de computere (procesoare) va putea să realizeze compilerul care să respecte standardele şi să traducă programele n limbajul maşină specific producătorului. Astfel devine posibil ca un program, respectndu-se aceste standarde, să poată fi compilat pe diverse computere şi apoi executat.
Prin scrierea unui program ntr-un limbaj evoluat se face o economie imensă de timp. Astfel programatorul pierde mai puţin timp pentru scrierea ntr-un limbaj mult mai apropiat de cel uman dect dacă acelaşi program ar fi scris n limbaj maşină (vezi exemplul de mai sus). Timpul de compilare al programului este de ordinul secundelor !!!
De la apariţia limbajului FORTRAN II, au apărut şi dispărut multe limbaje evoluate. Cele mai utilizate la ora actuală sunt:

COBOL    Afacerilor (baze de date, etc)
FORTRAN    Inginerie + Matematică + Fizică + etc
PASCAL    Uz general
C, C++    Uz general – cel mai popular
PROLOG    Inteligenţa artificială
JAVA    Uz general – creşte n popularitate
COBOL (COmmon Business-Oriented Language) - un limbaj de programare dezvoltat ntre anii 1959-1961. Este utilizat n special pentru aplicatii cu caracter economic si administrativ. A fost initial sustinut de Departamentul de Aprare American si ulterior dezvoltat pentru aplicatii comerciale. Programele scrise n COBOL, limbaj compilat, contin patru diviziuni: identifi-carea, mediul, date si proceduri.
FORTRAN (FORmula TRANlation) - primul limbaj de nivel nalt (1954-1958 Jim Bachus) si cel care a introdus si definit concepte ca variabile, expresii, enunturi, iterative, subrutine compilate separat si input/output format. FORTRAN este un limbaj compilat, structurat. Chiar numele arat originile stiintifice si ingineresti; FORTRAN este nc foarte folosit n aceste domenii.  
PASCAL - limbaj procedural concis, proiectat de Niklaus Wirth n perioada 1967-1971. Pascal, limbaj structurat, compilat, construit pe baza limbajului ALGOL, simplific sintaxa adugnd tipuri de date si structuri ca subzone, tipuri enumerate de date, fisiere, nregistrri si seturi. Acceptarea si utilizarea lui Pascal s-a mrit considerabil o dat cu introducerea n 1984, de ctre Borland International, a mediului Turbo Pascal, un compilator ieftin, de mare vitez, utilizat n MS-DOS, care s-a vndut n peste un milion de copii n diverse versiuni. Chiar asa, Pascal pare s piard teren n favoarea lui C ca limbaj standard de dezvoltare la microcomputere.
C - 1. Limbaj de programare dezvoltat de Dennis Ritchie la Bell Laboratories, New Jersey, n anul 1972, numit asa pentru c limbajul imediat premergtor a fost limbajul B. Desi C este considerat de multi a fi mai mult un limbaj de asamblare dect un limbaj de nivel nalt, asocierea strns cu sistemul de operare UNIX, popularitatea sa enorm ct si standardizarea de ctre ANSI au fcut ca acesta s fie aproape un limbaj de programare standard. C este un limbaj compilat ce contine un mic set de functii built-in care sunt machine-dependent. Celelalte functii sunt independente si sunt continute n niste fisiere numite library care pot fi accesate dintr-un program C. Programele C sunt compuse dintr-una sau mai multe functii definite de programator; astfel c C se consider a fi un limbaj structurat. Compilatorul nu dispune, n general, de functii de intrare/iesire, din pretentia, de altfel ndrepttit, de a se asigura portabilitatea lui; aceste functii fiind ntr-o bibliotec foarte vast. Exist dou implementri de compilatoare foarte rspndite pe calculatoarele personale: Turbo C, produs de firma Borland n dou versiuni, normal si profesional si Microsoft C, produs de firma Microsoft.

C++ - versiune a limbajului C, orientat spre obiect, dezvoltat de Bjarne Stroustrup la nceputul anilor 80 la Bell Laboratories. C++ are trsturi specifice limbajelor de programare orientate obiect. Conceptul fundamental n C++ este clasa. El contine de asemenea mbunttiri care nu sunt direct legate de clase, cum ar fi: constante simbolice, substitutia “in-line” a functiilor, argumente cu valori implicite pentru functii, nume de functii suprancrcate, operatori pentru gestionarea memoriei libere si un tip de referint

PROLOG (PROgramming LOGic) - limbaj de programare creat n 1973 de Alain Colmeraner la Universitatea din Aix-Marseille. Este un limbaj descriptiv destinat inteligentei  artificiale, fiind utilizat n special la realizarea sistemelor expert. Programa-torul formeaz o baz de cunostinte, adic un set de reguli si fapte legate de mediul tratat, dup care descrie problema de rezolvat. PROLOG-ul este un limbaj care sparge regulile traditionale de programare.
Java este un limbaj de programare de nivel nalt, orientat obiect, proiectat iniţial pentru realizarea de aplicaţii pentru Internet şi mai cu seamă pentru Web. Acesta este utilizat n prezent cu succes şi pentru programarea aplicaţiilor destinate intranet urilor. n acest sens, multe firme recurg la limbajul Java n procesul de informatizare ntruct oferă un foarte bun suport pentru tehnologiile de vrf şi, nu n ultimul rnd, pentru faptul că este gratuit şi n mod continuu mbogăţit şi mbunătăţit.
   !NOTA  : Donald Ervin Knuth (născut pe 10 ianuarie 1938) este profesor emerit la Universitatea Stanford.
Este autorul cărţii The Art of Computer Programming ("Arta progrămarii calculatoarelor"), una dintre cele mai apreciate n acest domeniu şi creator al TeX şi Metafont.
A primit numeroase premii, printre care: premiul Turing, Medalia naţională n ştiinţe, medalia John von Neumann şi premiul Kyoto. The Art of Computer Programming (Arta programării calculatoarelor) este una dintre cele mai faimoase cărţi din domeniul informatic, scrisă de Donald E. Knuth, carte ce acopera toate genurile de algoritmi cu demonstraţii matematice riguroase.
Din această carte monumentală prin dimensiuni şi conţinut, au apărut trei volume, dar Knuth a anunţat că vor mai urma alte patru.
Referat oferit de www.ReferateOk.ro
Home : Despre Noi : Contact : Parteneri  
Horoscop
Copyright(c) 2008 - 2012 Referate Ok
referate, referat, referate romana, referate istorie, referate franceza, referat romana, referate engleza, fizica