Sunteți pe pagina 1din 6

Limbajul de

programare C++
PREZENTARE POWERPOINT REALIZATA DE ROTARU MIHAI
Cum a aparut C++?
În 1979, Bjarne Stroustrup, un informatician danez, a început să lucreze la „C cu
clasele”, predecesorul lui C ++. Motivația pentru crearea unui limbaj nou provine din
experiența lui Stroustrup în programarea tezei sale de doctorat. Stroustrup a constatat
că Simula avea funcții foarte utile pentru dezvoltarea software-ului mare, dar limbajul
era prea lent pentru utilizarea practică, în timp ce BCPL era rapid, dar prea scăzut
pentru a fi potrivit pentru dezvoltarea software-ului mare. Când Stroustrup a început
să lucreze în AT&T Bell Labs, a avut problema analizei nucleului UNIX în ceea ce
privește calculul distribuit. Amintindu-și doctoratul, Stroustrup și-a propus să
îmbunătățească limbajul C cu caracteristici asemănătoare cu Simula.C a fost ales
pentru că a fost de uz general, rapid, portabil și utilizat pe scară largă. Pe lângă
influențele lui C și Simula, alte limbi au influențat și această nouă limbă
Limbajul
 Limbajul C ++ are două componente principale: o mapare directă a caracteristicilor hardware furnizate în primul rând
de subsetul C și abstractizările zero, bazate pe acele mapări. Stroustrup descrie C ++ drept „un limbaj de programare
cu abstractizare ușoară [proiectat] pentru construirea și utilizarea abstractizărilor eficiente și elegante”, iar „oferirea
atât a accesului hardware cât și a abstractizării este baza C++. “
 Ca și în C, C ++ acceptă patru tipuri de gestionare a memoriei: obiecte de durată de stocare statică, obiecte de durată
de stocare a firului, obiecte de durată de stocare automată și obiecte de durată de stocare dinamică.
 Șabloanele C ++ permit programarea generică. C ++ acceptă șabloane de funcții, clasă, alias și variabile. Șabloanele
pot fi parametrizate în funcție de tipuri, constante de compilare și alte șabloane. Șabloanele sunt puse în aplicare prin
instantanare în timp de compilare. Pentru a iniția un șablon, compilatorii înlocuiesc argumentele specifice pentru
parametrii unui șablon pentru a genera o funcție concretă sau o instanță de clasă. Unele substituții nu sunt posibile;
acestea sunt eliminate printr-o politică de rezoluție la suprasarcină descrisă de sintagma „Eșecul de substituire nu este
o eroare” (SFINAE). Șabloanele sunt un instrument puternic care poate fi utilizat pentru programarea generică,
metaprogramarea șabloanelor și optimizarea codului, dar această putere implică un cost. Utilizarea șablonului poate
crește dimensiunea codului, deoarece fiecare instantanare a șablonului produce o copie a codului șablonului: unul
pentru fiecare set de argumente de șablon, totuși, aceasta este aceeași sau mai mică cantitate de cod care ar fi generată
dacă codul ar fi fost scris manual. [60] Acest lucru este în contrast cu genericele în timp de rulare, văzute în alte limbi
(de exemplu, Java), la momentul compilării, tipul este șters și se păstrează un singur corp de șablon.
Compatibilitatea
 Pentru a oferi mai multă libertate vânzătorilor de compilați, comitetul de standarde C ++ a decis să nu
dicteze implementarea gestionării numelor, a manipulării excepțiilor și a altor funcții specifice
implementării. Dezavantajul acestei decizii este că se preconizează că codul obiect produs de diferite
compilatoare este incompatibil. Cu toate acestea, au existat încercări de standardizare a compilatoarelor
pentru anumite mașini sau sisteme de operare (de exemplu, C ++ ABI), deși acum par să fie abandonate în
mare măsură.
 C ++ este adesea considerat a fi o superset de C, dar acest lucru nu este strict adevărat. Majoritatea codului
C pot fi făcute cu ușurință pentru a compila corect în C ++, dar există câteva diferențe care fac ca unele
coduri valide să fie invalide sau să se comporte diferit în C ++. De exemplu, C permite conversia implicită
de la void * la alte tipuri de indicatoare, dar C ++ nu (din motive de siguranță de tip). De asemenea, C ++
definește multe cuvinte cheie noi, precum clasa nouă și clasa, care pot fi utilizate ca identificatori (de
exemplu, nume de variabile) într-un program C.
Critici
 În ciuda adoptării sale răspândite, unii programatori notabili au criticat limbajul C ++, inclusiv
Linus Torvalds, Richard Stallman, Joshua Bloch, Ken Thompson și Donald Knuth. Unul dintre
punctele cele mai adesea criticate ale C ++ este complexitatea percepută ca limbaj, cu critica
potrivit căreia un număr mare de caracteristici non-ortogonale în practică necesită restricționarea
codului la subsetul C ++, scăpând astfel avantajele de lizibilitate ale stilului și idiomurilor
comune.
 Stroustrup însuși comentează că semantica C ++ este mult mai curată decât sintaxa sa: „în cadrul
C ++, există un limbaj mult mai mic și mai curat care se luptă să iasă”. Alte reclamații pot include
lipsa reflecției sau colectarea gunoiului, timpii lungi de compilare, caracteristicile percepute. și
mesaje de eroare verbose, în special din metaprogramarea șabloanelor.
Va multumesc pentru
atentie!!!

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