0% au considerat acest document util (0 voturi)
106 vizualizări4 pagini

Tipizare: Istoricul C++

Documentul prezintă caracteristicile principale ale limbajului de programare Python, inclusiv tipizarea dinamică, structurile de date, stilul de programare și sintaxa. De asemenea, oferă exemple și explicații privind concepte precum tipurile de date, mutabilitatea acestora și importanța indentării în Python.

Încărcat de

E
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
106 vizualizări4 pagini

Tipizare: Istoricul C++

Documentul prezintă caracteristicile principale ale limbajului de programare Python, inclusiv tipizarea dinamică, structurile de date, stilul de programare și sintaxa. De asemenea, oferă exemple și explicații privind concepte precum tipurile de date, mutabilitatea acestora și importanța indentării în Python.

Încărcat de

E
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 4

Tipizare[modificare | modificare sursă]

Limbajele dinamice sunt deseori caracterizate prin tipizare dinamică, sunt interpretate, au
management de memorie automatizat (garbage collecting) și au un nivel înalt de abstractizare. Tipul
variabilelor nu este fixat la momentul declarării acestora (de fapt, declararea variabilelor nu este
necesară ca în C), ci este determinat de interpretator după conținutul lor sau după operațiile
efectuate. Într-un asemenea caz se vorbește de tipizare dinamică.
Avantajul acestei metode de a lucra cu tipuri este că codul produs este mai clar și mai intuitiv. De
exemplu:

a = 10 # a va fi considerat un număr întreg (integer)


b = 11.5 # b va fi considerat un număr rațional (double sau float)
c = "un rând de text" # c va fi considerat un șir (string)

În ciuda tipizării dinamice, Python este puternic tipizat, adică interpretatorul nu permite operații cu


obiecte de tip diferit dacă acestea nu sunt bine definite, cum ar fi operațiile de tip cast în C. Există
totuși unele excepții logice, cum ar fi în cazul numerelor întregi și celor raționale (float), între care
sunt permise operații ca adunarea sau împărțirea, tipul rezC++ (pronunțat ca în engleză /
ˈsiː plʌs plʌs/ ) este un limbaj de programare general, compilat. Este un limbaj multi-paradigmă, cu
verificarea statică a tipului variabilelor ce suportă programare procedurală, abstractizare a
datelor, programare orientată pe obiecte. În anii 1990, C++ a devenit unul dintre cele mai populare
limbaje de programare comerciale, rămânând astfel până azi[1].
Bjarne Stroustrup de la Bell Labs a dezvoltat C++ (inițial denumit C cu clase) în anii 1980, ca o serie
de îmbunătățiri ale limbajului C. Acestea au început cu adăugarea noțiunii de clase, apoi de funcții
virtuale, suprascrierea operatorilor, moștenire multiplă, șabloane (engleză template) și excepții.
Limbajul de programare C++ a fost standardizat în 1998 ca și ISO 14882:1998, versiunea curentă
fiind din 2003, ISO 14882:2003. Următoarea versiune standard, cunoscută informal ca C++0x, este
în lucru.

Cuprins

 1Istoricul C++
 2Exemple
 3Note
 4Bibliografie

Istoricul C++[modificare | modificare sursă]

Bjarne Stroustrup, creatorul limbajului C++.


Stroustrup a început să lucreze la C cu clase în 1979. Ideea creării unui nou limbaj a venit din
experiența de programare pentru pregătirea tezei sale de doctorat. Stroustrup a descoperit
că Simula avea facilități foarte utile pentru proiecte mari, însă era prea lent, în timp ce BCPL era
rapid, însă nu era de nivel înalt și era nepotrivit pentru proiecte mari. Când a început să lucreze
pentru Bell Labs, avea sarcina de a analiza nucleul UNIX referitor la calcul distribuit. Amintindu-și de
experiența sa din perioada lucrării de doctorat, Stroustrup a început să îmbunătățească C cu facilități
asemănătoare Simula. C a fost ales deoarece era rapid și portabil. La început facilitățile adaugate C-
ului au fost clase, clase derivate, verificare a tipului, inline și argumente cu valori implicite.
În timp ce Stroustrup a proiectat C cu clase (mai apoi C++), a scris de asemenea și Cfront, un
compilator care genera cod sursă C din cod C cu clase. Prima lansare comercială a fost în 1985.
În 1982, numele limbajului a fost schimbat de la C cu clase la C++. Au fost adaugate noi facilități,
inclusiv funcții virtuale, supraîncărcarea operatorilor și a funcțiilor, referințe, constante, alocare
dinamică, un control al tipului mai puternic și noua variantă de comentariu pe un singur rând (liniile
care încep cu caracterele '//').
În 1985 a fost lansată prima ediție a cărții "The C++ Programming Language" (Limbajul de
programare C++), oferind informații importante despre limbaj, care încă nu era un standard oficial.
În 1989 a fost lansată versiunea 2.0 a C++. Au apărut acum moștenirea multiplă, clase abstracte,
funcții statice, funcții constante și membri protected. În 1990 o altă carte a fost lansată, oferind
suport pentru standarde viitoare. Ultimele adăugări includeau template-uri, excepții, spații de nume
(namespace-uri) și tipul boolean.
O dată cu evoluția limbajului C++, a evoluat și o bibliotecă standard. Prima adăugire a fost biblioteca
de intrări/ieșiri (I/O stream), care oferea facilități pentru a înlocui funcțiile tradiționale C cum ar fi
printf și scanf. Mai târziu, printre cele mai semnificative adăugari la biblioteca standard a fost STL
(Standard Template Library) (Biblioteca de formate standard).
După ani de lucru, un comitet ANSI-ISO a standardizat C++ în 1998 (ISO/IEC 14882:1998).
ultatului ținând cont de natura operației, cum se poate vedea mai jos:

d = 10 + 11.5 # rezultatul va fi un număr rațional, 21.5


e = "o brioșă" + 4 # această comandă va genera o eroare.

Alt concept important în Python este cel al tipurilor mutabile și nemutabile. Așa cum implică numele,
datele cu un tip mutabil pot fi alterate după inițializare, în vreme ce la date nemutabile lucrul acesta
este imposibil. Luând ca exemplu o listă (mutabilă), constatăm că putem adăuga elemente la listă
sau le putem modifica fără probleme. În cazul unui șir de caractere (nemutabil), acest lucru nu este
permis:

lista_mea = ["măr", "pară"]


lista_mea.append("strugure") # adaugă la listă
print lista_mea[2] # afișază: strugure

șirul_meu = "varză"
șirul_meu[0] = "b" # schimbă cuvântul în "barză" -> Eroare
Structuri de date[modificare | modificare sursă]

Python oferă tipuri tradiționale de date, cum ar fi numărul întreg (integer, int) sau cel rațional (float),
dar introduce totodată și concepte noi.
De exemplu, un grad mare de flexibilitate îl oferă listele (tablourile) în Python. Acestea nu sunt
statice, ci pot conține orice tipuri de date (în cadrul aceleiași liste) și pot fi modificate pe loc
adăugând și eliminând elemente fără a declara sau utiliza funcții de manipulare a memoriei.

lista_mea = [10, "șir de caractere", variabilă, ["altă", "listă"],


chiar_și_o_funcție]

Alte structuri de date sunt tuplurile/perechile (tuples) și dicționarele (dictionaries, mappings).


Tuplurile sunt liste care au un număr prestabilit de elemente, și nu pot fi modificate parțial. Tuplurile
pot fi utilizate în cazuri în care este nevoie de o anumită structură de date specializată, de exemplu
coordonate în spațiul cartezian. Dicționarele sunt liste neordonate în care fiecare element are
asociat o cheie, care poate fi număr sau șir de caractere. Dicționarele au foarte multe aplicații,
inclusiv crearea structurilor de tip hash-tables.

Stil[modificare | modificare sursă]
Sintaxa Python 2.x. Modul de aliniere creează rutine și subrutine.

Python este un limbaj multi-paradigmă, concentrându-se asupra programării imperative, orientate pe


obiecte și funcționale, ceea ce permite o flexibilitate mai mare în scrierea aplicațiilor. Din punctul de
vedere al sintaxei, Python are un număr de contrucții și cuvinte cheie cunoscute oricărui
programator, dar prezintă și un concept unic: nivelul de indentare are semnificație sintactică.
Blocurile de cod sunt delimitate prin simplă indentare.
În C un astfel de blocuri sunt deseori desemnte prin acolade, {<cod>}, dar în Python nu este nevoie
de astfel de construcții. Nivelele de indentare îndeplinesc această funcție. Această importanță a
indentării este foarte suprinzătoare pentru mulți utilizatori noi ai limbajului Python, chiar dacă sunt
programatori cu experiență. Dar o astfel de utilizare a indentării permite codului să fie mai ușor de
citit și mai compact. Programatorii cu experiență vor indenta implicit codul sursă, oricare ar fi
limbajul, fiindcă astfel se permite structurarea codului sursă și evidențierea funcționalității. Python
face din această deprindere folositoare în acest sens o cerință strictă.
O impunere similară există și în limbajul de programare Java, care forțează programatorii să
delimiteze clasele în fișiere aparte, din motive de organizare și sporire a eficienței de scriere a
softului în echipe.

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