Limbaje de Programare

Previzualizare curs:

Extras din curs:

1. Definirea şi clasificarea limbajelor de programare

Limba (DEX) – sistem de comunicare alcătuit din sunete articulate, specifice omului, prin care acesta îşi exprimă gândurile sau dorinţele.

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 programare. Limbajele de programare sunt sisteme convenţionale (limbaje artificiale) create de om şi care servesc la exprimarea sub formă de acţiuni executabile mijlocit sau nemijlocit de către sistemul de calcul a algoritmului sau logicii de rezolvare a unei probleme.

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. Altfel spus limbajul de programare este o notaţie sistematică prin care se descrie un proces de calcul. Orice limbaj (natural sau artificial) presupune definirea sintaxei, semanticii şi pragmaticii lui.

Sintaxa este un set de reguli ce guvernează alcătuirea propoziţiilor dintr-un limbaj. În cazul limbajelor de programare echivalentul propoziţiei este programul.

Semantica este un set de reguli ce determină „înţelesul” sau semnificaţia propoziţiilor într-un limbaj.

Pragmatica indică utilitatea practică a limbajului )uşurinţa utilizării, independenţa de sistemul de calcul etc.)

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 4-a : limbaje mai apropiate de limbajul uman decât limbajele de înalt nivel;

- limbaje de generaţia a 5-a – îndreptate spre exploatarea bazelor de cunoştinţe , crearea sistemelor expert şi spre rezolvarea problemelor legate de inteligenţa artificială.

Limbajul maşină

Reprezintă nivelul cel mai elementar al limbajelor de programare.

Când 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 address meaning

code

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

Permite folosirea codurilor simbolice pentru adrese, date şi operaţii.

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 până 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 începând 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 address

code

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 (asamblor) 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 întâmplă î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.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Limbaje de Programare.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
95 pagini
Imagini extrase:
95 imagini
Nr cuvinte:
29 990 cuvinte
Nr caractere:
166 339 caractere
Marime:
1.06MB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Anca Bujor
Sus!