Sunteți pe pagina 1din 2

Scurt istoric al limbajului C Stramosii Str mo ii limbajului C sunt limbajele de programare CPL, BCPL, B i Algol 68.

CPL a fost dezvoltat la Universit ile Cambridge i London n anii 1960-1963. BCPL a fost proiectat de Martin Richards n 1967 i face parte din categoria low-level languages, sau systems programming languages. n anii 60, la Bell Laboratories n USA, Ken Thomson a nceput proiectarea sistemului de operare Unix. Primul limbaj de nivel nalt implementat sub acest sistem de operare a fost limbajul B, un limbaj bazat pe BCPL care a fost proiectat de asemenea de c tre Ken Thompson n 1970. Asem narea cu BCPL a fost mai degrab semantic ; sintaxa este total diferit . Proiectarea limbajului B a fost influien at de limitele ma inii pe care a fost implementat: un PDP-7 cu capacitatea 4K ( cuvinte de 18 bi i). Limbajele BCPL i B sunt limbaje de nivel sc zut fa de limbajul Pascal i nici unul din ele nu este tipizat: toate datele sunt considerate cuvinte ma in nct, exemple simple de programe duc la complica ii neb nuite. n una din implement rile BCPL-ului, operanzii flotan i din expresii trebuiau preceda i de punct; restul operanzilor erau considera i ntregi. Problemele create n jurul limbajelor BCPL i B au dus la dezvoltarea unui nou limbaj, bazat pe B, care la nceput s-a numit NB dar numele s u a fost stabilit C. Numele C, considerat la nceput a proveni de la Cambridge, este oficial din Combined dar neoficial se consider a fi ini iala pronumelui lui Cristopher Strachey, cel care a condus echipa ce a proiectat CPL-ul. Limbajul a fost proiectat i implementat de c tre Dennis Ritchie la Bell Laboratories n 1972. n mare parte ( construc iile for i switch, tratarea pointerilor etc.) limbajul a fost influien at i de Algol 68. Ritchie a lucrat pe un calculator DEC PDP-11 sub sistemul de operare Unix. Din acest motiv varianta clasic a limbajului C a fost asociat sistemului de operare Unix - versiunea 5 i mult vreme a constituit un standard (neoficial de altfel) al limbajului [KeR 78]. Odat cu cre tere popularit ii calculatoarelor personale, au ap rut numeroase alte implement ri ale limbajului C i astfel a crescut i popularitatea acestuia. Un fapt cu totul inedit a fost acela c , mare parte din implement rile C -ului s-au dovedit de un mare grad de compatibilitate: un program scris pentru una din variante putea fi compilat cu succes folosind o alt variant . Se n elege c au existat i neconcordan e n multitudinea de dialecte ale limbajului. Pentru eliminarea acestora n 1983 a fost creat o comisie care s stabileasc un standard al acestui limbaj. Standardul ANSI ( American National Standard Institute) a fost redactat abia n decembrie 1989 i a fost pus la dispozi ia celor interesa i la nceputul lui 1990. Firma Borland a folosit acest standard n faza de proiect i a realizat implement rile Turbo C care se bucur de un succes remarcabil. De altfel, n prezent , toate compilatoarele C sunt compatibile cu standardul ANSI C; unele din acestea au ad ugate o serie de facilit i sau extensii proprii care nu mpiedic compilarea unui program standard. Limbajul C este privit ca un limbaj de nivel mediu ntruct combin cele mai reu ite elemente ale limbajelor de nivel nalt ( Pas-cal, Fortran, Algol, Modula, Ada) cu gradul de control i flexibilitatea oferite de c tre limbajul de asamblare. C permite manevrarea bi ilor, a octe ilor i a adreselor de memorie, adic a elementelor de baz n func ionarea unui calculator. n ciuda acestui fapt , programele scrise n C au un grad mare de portabilitate: u urin a de a adapta programele scrise pentru o anumit categorie de calculatoare sau sisteme de operare la alte calculatoare sau sisteme de operare. Limbajul C are structuri de control adecvate precum i facilit i de structurare a datelor care l fac s fie folosit ntr-o diversitate de domenii. Are de asemenea o mul ime bogat de operatori care-i dau un nalt grad de expresivitate. Unul din motivele pentru care limbajul C este n acela i timp agreat de mare parte din programatori i dezagreat de alt mare parte din programatori, este lipsa total a verific rii tipului (type checking). De exemplu, o variabil de un tip scalar oarecare poate apare n aceea i expresie cu o variabil de un alt tip scalar. Cei

care agreaz limbajul C i apreciaz flexibilitatea sa, cei care nu-l agreaz l consider un limbaj lipsit de siguran . Ceea ce este sigur, este c datorit faptului c face parte din sistemul de operare Unix, limbajul a c p tat o mare popularitate n lumea academic i nu numai. Compilatoarele oferite mpreun cu sistemul Unix sunt relativ ieftine (uneori chiar gratuite) i pot fi folosite pe o diversitate de ma ini. O nou versiune a limbajului C, numit C++, a ap rut n 1984. Originea acestui limbaj trebuie c utat n proiectul care a nceput n Aprilie 1979 la Computing Research Center of Bell Laboratories n Murray Hill, New Jersey, USA, proiect ce trebuia s realizeze distribuirea nucleului UNIX ntr-o re ea de computere conectate LAN. Pentru realizarea acestui proiect, Bjarne Stroustrup a realizat n Octombrie 1979 un preprocesor, numit Cpre, care a ad ugat la limbajul C conceptul de clas folosit pentru prima dat de limbajul Simula ( dezvoltat n anii 1962-1967 de norvegienii Kristen Nyagaard i Ole-Johan Dahl). n martie 1980 preprocesorul mbun t it era implementat pe 16 sisteme iar limbajul acceptat de acesta a fost numit C cu Clase. Motivele pentru care a fost ales limbajul C (n fa a altor limbaje ale vremii: Modula-2, Ada, Smalltalk, Mesa, Clu) pentru acest proiect sunt expuse chiar de creatorul noului limbaj: C este un limbaj flexibil: se poate folosi n orice domeniu i permite utilizarea oric ror tehnici de programare; C este un limbaj eficient: semantica sa este low level ceea ce nseamn c pot fi folosite cu eficien resursele hardware pentru programele C. A a cum vom vedea pe parcursul prezent rii limbajului, acesta oglinde te conceptele fundamentale ale unui computer tradi ional; C este un limbaj disponibil: un limbaj pentru care se poate g si cu u urin un compilator, indiferent de ce calculator dispunem; C este un limbaj portabil: chiar dac un program C nu este automat portabil de la o ma in la alta, acest lucru este posibil n general f r un efort deosebit. Cele mai mari influien e asupra noului limbaj le-au avut: Simula care a dat clasele, Algol 68 care a dat supranc rcarea operatorilor, referin ele i abilitatea de a declara variabile oriunde n cadrul unui bloc i BCPL de unde a fost luat forma de prezentare a comentariilor cu //. Dup numele C cu clase limbajul a fost botezat C84. Asta pentru scurt timp ns deoarece comitetul ANSI pentru standardizarea C-ului a atras aten ia c se poate crea o confuzie cu aceast denumire; era vorba totu i de un nou limbaj, chiar dac era cl dit pe C. Numele C++ a fost sugerat de Rick Mascitti, un membru al echipei lui Stroustrup, i a fost folosit pentru prima dat n Decembrie 1983.Iat ce spune Stroustrup despre aceast alegere: <<I picked C++ because it wos short, had a nice interpretation, and wasnt of the form adjective C. In C++, ++ can, depending on context, be read as next, succesor or increment , tough it is always pronounced plus plus.>> n figura 1.2. este prezentat genealogia limbajului C++ iar figura 1.3. prezint etapele importante din proiectarea limbajului. Datele care apar n parantez se refer la prima implementare disponibil pentru limbajul respectiv(dup [STR 94]). C++arm reprezint The Annotated C++ Reference Manual iar C++std este standardul ANSI C++.

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