Istoria limbajului de programare C++

Istoria calculatoarelor poate merge inapoi in timp pana in antichitate, unde avem dispozitive mecanice pentru calcule astronomice cum ar fi mecanismul de la Antikythera sau, mai recent, razboiul de tesut semiautomat al lui Joseph-Marie Jacquard. Totusi, in acest articol, ne intereseaza doar programarea calculatoarelor digitale moderne folosind limbajul C++, asa ca vom trece direct la subiect!

Primele calculatoare digitale au fost programate folosind cifrele 0 si 1 (codul masina). Codul masina este singurul care poate fi inteles de calculator dar nu este foarte accesibil pentru om. Un program pentru un astfel de calculator continea lungi siruri de combinatii de 0 si 1 asezate intr-o ordine logica.

Intre 1947 si 1955 au fost dezvoltate primele limbaje de asamblare. Codul masina si limbajul de asamblare sunt numite limbaje low level. Programele pot fi scrise in aceste limbaje doar daca este inteleasa structura hardware a calculatorului, microcontrolerului sau a dispozitivului programabil. Pentru a facilita programarea calculatoarelor, era necesara crearea unor limbaje de nivel superior care erau independente de structura hardware (compilatorul fiind responsabil cu traducerea codului din limbaj superior in cod masina).

In anii ’50 la IBM a fost creat FORTRAN, primul limbaj de nivel superior cu compiler. Acesta a facut computerele mai accesibile si programarea lor mai usoara si mai economica. Limbajul a fost creat pentru a fi folosit in cercetarea stiintifica si a fost utilizat intensiv in studiul dinamicii fluidelor, fizica computationala si chimie computationala. Este utilizat in prezent, in domenii cum ar fi meteorologia si la crearea unor programe pentru unele dintre cele mai puternice computere din lume.

Aparitia primului limbaj de programare de nivel superior a fost una dintre cele mai importante pietre de hotar din industria calculatoarelor. FORTRAN a eficientizat scrierea codului, reducand numarul de declaratii cu un factor de pana la 20 (practic, in loc sa scrii 200 de pagini de cod in limbaj de asamblare, puteai scrie aproximativ 20 de pagini). Dupa aparitia lui FORTRAN, au fost create si alte limbaje de programare cu caracteristici tot mai avansate. Aceste limbaje aveau un nivel tot mai ridicat de abstractizare si ofereau celui care programa, diferite optiuni cum ar fi declararea variabilelor, tipului variabilelor si a functiilor.

Aparitia limbajului de programare C (parintele limbajului C++) este legata de aparitia sistemului de operare UNIX. In anii 60, Massachusetts Institute of Technology, AT&T Bell Labs, si General Electric au incercat sa dezvolte impreuna, un sistem de operare numit Multics. Acesta a adus multe inovatii dar avea si multe probleme, de exemplu costul ridicat de dezvoltare, astfel incat AT&T Bell Labs s-a retras din proiect. Ideea de a crea un sitem de operare a ramas. In 1969, o echipa condusa de Ken Thompson si Dennis Ritchie (ambii au fost implicati in proiectul Multics) au creat un sistem de operare la AT&T Bell Labs. Acesta a fost scris in limbaj de asamblare iar in 1970 Peter G. Neumann i-a dat numele UNIX, numele fiind un joc de cuvinte referitor la Multics.

In 1966 a aparut limbajul de programare BCPL. In 1969 Ken si Dennis au creat o derivatie din BCPL numita B care a fost folosita la dezvoltarea ulterioara a sistemului de operare UNIX. Limbajul de programare B avea multe limite astfel incat, intre 1971 si 1973, Dennis Ritchie a creat limbajul de programare C care, spre deosebire de B, avea mai multe avantaje. Ulterior, o mare parte din sistemul de operare UNIX a fost rescris in limbajul C. Au fost create programe de compilare  pentru mai multe tipuri de calculatoare care traduceau in cod masina programele scrise in C astfel incat limbajul a devenit portabil si aproape universal.

In anii ’60, a fost creat limbajul Simula. Versiunea din 1967 a acestuia a introdus cateva inovatii, printre care obiectele, mostenirea, clasele si subclasele. In 1979, Bjarne Stroustrup a inceput munca la un limbaj numit „C cu clase” care consta in reimplementarea unor caracteristici ale Simula in C. „C cu clase” a fost numit C++.

P.S.

Putem spune ca inaintea lui FORTRAN a fost creat un limbaj de programare de nivel superior (in 1952, cu aproximativ doi ani inaintea lui FORTRAN) dar acest limbaj (Autocode) a avut un impact minor. Ramane relevant doar FORTRAN ca fiind primul limbaj de programare de nivel superior. Autocode a fost un simplu experiement folosit pentru a calcula formula f(x)=sqrt(|t|)+5x^3!