Sunteți pe pagina 1din 7

Programare Limbajul C

Sef lucr. ing. drd. Sav Sorin Mihail

BIBLIOGRAFIE
1. Sav Sorin Mihail Programare C/C++ pas cu pas. Culegere de probleme. Partea I. Ed. Universitas, Petrosani, 2007 2. Bjarne Stroustrup The C++ Language(third edition), Addison Wesley, 1997 3. Brian Kernigham, Dennis Ritchie The C Programming Language Prentice Hall, 1985 4. Florin Munteanu s.a Programarea calculatoarelor, Editura Didactic i Pedagogic, Bucureti, 1994 5. Herbert Schilldt C++ manual complet, Editura Teora, Bucureti, 1997 6. Kyle Loudon Mastering Algorithms with C, OReilly & Associates, Inc., 1005 Gravenstein Highway North, Sebastopol, 1999 7. Tudor Sorin Bazele programrii n C++, Editura L&S Infomat, Bucuresti, 1997
15 mai 2013 1

Curs nr. 1
1.1. Introducere. Momente in evolutia limbajului C Limbajul a fost elaborat n anii 70 de ctre Brian W. Kernighan si Dennis M. Ritchie de la Bell Laboratories, New Jersey, SUA pe baza dezvoltrii limbajelor B i BCPL. Iniial a fost destinat scrierii sistemului de operare UNIX, deoarece era necesar un nou limbaj pentru scrierea unui sistem de operare ct mai independent de platforma hardware aleas. Caracteristicile distinctive ale limbajului au fost definite de la inceput:

Portabilitate maxim
Structurare Posibilitatea efectuarii si optimizrii operaiilor la nivelul mainii: lucrul cu o mare diversitate de periferice interfaa eficient cu sistemul de operare optimizarea operatiilor de prelucrare a datelor, cu pstrarea trasaturilor unui limbaj de nivel inalt
15 mai 2013 2

Portabilitatea sistemului de operare s-a reuit, astfel c acesta a rmas pn acum singurul sistem implementat pe toate tipurile de calculatoare, de la laptop-uri la supercalculatoare. De asemenea, limbajul s-a impus ulterior i pe alte sisteme de operare dect UNIX. n 1983 a nceput elaborarea standardizrii limbajului C (varianta ANSI-C). Definitivarea limbajului ANSI-C s-a terminat n 1990.

Brian Kernighan i Dennis Ritchie au fost i cei care au scris prima carte de prezentare a limbajului C: The C Programming Language" n 1978. Chiar dac au fost scrise ulterior mii de cri despre limbajul C, cartea a rmas o lucrare de referin n literatura de specialitate.
Varianta impus de ei iniial, i specificat n aceast carte (numit chiar varianta Kernighan & Ritchie) mpreun cu varianta ANSI C rmn cele mai importante implementri ale limbajului. La sfritul anilor '80, pe baza limbajului C a fost creat de ctre Bjarne Stroustrup limbajul C++ care ofer un plus de rigurozitate, lucrul cel mai important, permite folosirea tehnicilor de programare orientat pe obiecte (OOP).
15 mai 2013 3

Limbajul C face parte din familia limbajelor de programare structurat. Datele pot fi organizate n colecii de elemente de diferite tipuri. Programatorul are posibilitatea de a defini propriile tipuri, ceea ce faciliteaz o reprezentare adecvat a informaiilor ce vor fi prelucrate. Spre deosebire de Pascal, structura programelor este mai simpl i mal uniform. Aceasta n primul rnd pentru c subrutinele sunt organizate n C sub o singur form i anume sub forma funciilor (n Pascal sunt accepate 2 forme: funcii i proceduri). n al doilea rnd pentru c funciile nu pot fi definite una n interiorul alteia. Un program este format din mai multe funcii care efectueaz activiti clar definite i care sunt bine delimitate de restul programului. Unitatea de baz n cazul limbajului C este funcia. Funciile, pot fi compuse din mai multe blocuri. Un bloc este o secven de mai multe declaraii, definiii i instruciuni care fixeaz durata de valabilitate a variabilelor i a constantelor simbolice definite n interiorul su. Blocul posed aceeai calitate ca i funciile, de a proteja variabilele locale.
15 mai 2013 4

1.2. Avantajele utilizrii limbajului C Exist o serie de avantaje care individualizeaz limbajul C: iniial, limbajul a fost folosit pentru a substitui limbajul de asamblare n aplicaii complexe (sisteme de operare, compilatoare, baze de date, editoare de text, aplicaii industriale, utilitare). n cazul sistemului de operare UNIX, 90% din cod este realizat n limbajul C. Limbajul permite att faciliti provenite de la folosirea sa n calitate de limbaj de nivel nalt, ct i faciliti specifice limbajelor de asamblare; are un numr mic de cuvinte rezervate; portabilitatea, remarcat chiar nainte de standardizare. Reamintim definiia noiunii de portabilitate ca fiind posibilitatea rulrii programelor sub diferite compilatoare i pe diferite sisteme de operare cu un numr de modificri nesemnificativ. un set de instruciuni complet, care permite folosirea programrii structurate; din punct de vedere al tipurilor de date, limbajul permite utilizarea tipurilor de baz specifice oricrui limbaj structurat. folosirea unui set puternic de operatori. Acetia au posibilitatea de a lucra la nivel de bit, oferind faciliti de nivel sczut apropiate limbajului main i faciliti deosebite pentru optimizarea timpului de execuie pentru operaiile pe bii, aritmetice i logice.
15 mai 2013 5

faciliti deosebite pentru lucrul cu pointeri. Operaiile de gestiune dinamic a memoriei sunt deosebit de puternice, oferind posibilitatea obinerii de informaii privind memoria ocupat i memoria liber, posibilitatea alocrii, realocrii i eliberrii de memorie dinamic. De asemenea, limbajul are o suplee deosebit pentru lucrul cu adresele: asupra pointerilor la date se pot face operaii aritmetice i relaionale i, n plus, este permis folosirea adreselor de funcii, fapt nemaintlnit pn la acea vreme. permite definirea tipurilor de date specificate de programatori. Fa de Pascal exist totui mai puine tipuri de date (nu exist tipurile: boolean, mulime i fiier tip). Tipul string nu este definit explicit dar exist un set de funcii din biblioteca stdio.h care fac operaii de citire i scriere a unui tablou unidimensional de caractere i un alt set, din biblioteca string.h, care prelucreaz irurile de caractere. are numeroase funcii de diverse utliliti, pe care programatorul le poate alege cu mult flexibilitate, dup necesitile aplicaiei. Funciile sunt organizate pe biblioteci n funcie de scopul urmrit i de modul de utilizare, neexistnd funcii ncorporate direct;
15 mai 2013 6

operaiile de intrare/ieire i cele de alocare dinamic a memoriei sunt adugate limbajului propriu-zis prin seturi defuncii implementate n biblioteci separate. Aceasta deoarece operaiile dependente de sistemul de operare, prin faptul c sunt folosite ca funcii i nu ca instruciuni, dau o flexibilitate sporit programelor surs dar i posibilitatea unei mai uoare realizri a compilatorului sub diverse medii. are un nivel ridicat de concizie, nefiind supus restriciilor excesive (de genul limbajului Pascal). De exemplu, conversiile sunt acceptate implicit ori de cte ori au sens. Aceasta impune o deplin cunoatere a resurselor disponibile, lucru care este deosebit de avantajos pentru programatorii profesioniti i deosebit de greu de suportat de ctre nceptori, pentru care aceast libertate excesiv dar scpat de sub control poate deveni generatoare de erori greu detectabile. rspndirea foarte mare pe care o cunoate astzi n aproape orice sistem de operare. n cazul DOS-ului i UNIX-ului mai mult ca oricnd, nu exist un alt limbaj care s poat avea, nici pe departe, acelai impact ca limbajul C. limbajul a fost creat i dezvoltat de programatorii profesioniti i este destinat n primul rnd acestora.
15 mai 2013 7

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