Limbaj de programare

De la Wikipedia, enciclopedia liber

Salt la: Navigare, c utare Un limbaj de programare este un set bine definit de expresii i reguli (sau tehnici) valide de formulare a instruc iunilor pentru un computer. Un limbaj de programare are definite un set de reguli sintactice i semantice. El d posibilitatea programatorului s specifice în mod exact i am nun it ac iunile pe care trebuie s le execute calculatorul, în ce ordine i cu ce date. Specificarea const practic în întocmirea/scrierea programelor necesare ("programare").

Cuprins
[ascunde]
y y y

y

1 Categorii 2 Execu ie 3 List de limbaje de programare o 3.1 Limbaje generale o 3.2 Limbaje specifice 4 Vezi i

[modific ] Categorii
y

Dup paradigma program rii o limbaje procedurale; ex. C, Java, Perl o limbaje functionale: ex. ML, Haskell o limbaje pentru programarea logic ex.Prolog, DATALOG o limbaje mixte: ex.LISP ofer un amestec heteroclit i netipizat de programare imperativ programare functional

i

y

Dup nivelul de abstractizare (care printre altele corespunde cu u urin a cu care programele pot fi citite i în elese de c tre programatori): o limbaje de genera ia întâia: limbajele cod-ma in (limbaje ma in ) o limbaje de genera ia a doua: limbajele de asamblare o limbaje de genera ia a treia: limbaje de nivel înalt, cum ar fi C-ul ( i toate derivatele sale: C++, Java, ...), Pascal, Fortran .a. o limbaje de genera ia a patra: limbajele neprocedurale, orientate pe rezolvarea unei anumite clase de probleme: SQL .a. o limbaje de genera ia a cincea: limbaje utilizate în domenii precum logica fuzzy, inteligen a artificial sau i re elele neuronale: Prolog, LISP .a. Dupa vechime o Limbaje din secolul trecut; ex. LISP i FORTRAN din anii '50 o Limbaje din ultimul deceniu; ex. Haskell, Ruby

y

[modific ] List de limbaje de programare [modific ] Limbaje generale Limbaje care pot fi folosite (cel pu in teoretic) la rezolvarea oric rui tip de probleme: y y y y y y y y y y y y y y y y y y y y y y BASIC (QuickBasic. y ActionScript . Unele limbaje se preteaz bine la compilare. De remarcat faptul c unele interpretoare de limbaje pot folosi compilatoare a a-numite just-in-time.a. SQL. La interpretare interpretorul ia prima instruc iune din programul-surs . Fortran.[modific ] Execu ie Pentru executarea unui program scris într-un limbaj oarecare. Multe limbaje moderne combin compilarea cu interpretarea: codul surs este compilat într-un limbaj binar numit bytecode.limbajul de scripting folosit de Macromedia Flash . exist . compilatorul transform programul-surs în totalitatea sa într-un program echivalent scris în limbaj ma in .m.d.de obicei interac iunea cu un anumit program sau sistem. folosit de Borland Delphi) Perl PHP Prolog Python Ruby Seed7 Scriptol Tcl/TK CSS XHTML [modific ] Limbaje specifice Limbaje cu un scop bine definit . o transform în limbaj ma in i o execut . GW-BASIC. de ex. Altele sunt cu predilec ie interpretate. de exemplu limbajele clasice: Pascal. apoi trece la instruc iunea doua i repet acelea i ac iuni . care transform codul în limbaj ma in chiar înaintea execut rii. Visual Basic) C C++ C# Clips Cobol Fortran Haskell Java JavaScript LISP Pascal ( i ObjectPascal. La compilare. care apoi este executat. dou abord ri: compilare sau interpretare. C. care la rulare este interpretat de c tre o ma in virtual . PHP. în principiu. BASIC.

Visual Basic permite crearea de aplica ii relativ complexe prin manipularea componentelor vizuale (grafice) ale programului. foarte asem n toare cu limba englez . Visual FoxPro) MIVA SCRIPT SQL . programatorul putand realiza cu usurinta interfete standardizate de tip Windows (ferestre. y y Visual Basic (VB) este un limbaj de programare produs de Microsoft. Kurtz la Dartmouth College. c utare BASIC (acronim al expresiei engleze Beginners All-purpose Symbolic Instruction Code) este un limbaj de programare de nivel înalt a calculatoarelor. compilatoare i depanatoare pentru încep torii în acest limbaj este QBASIC (acronim pentru Quick Beginners All-purpose Symbolic Instruction Code). care poate fi desc rcat gratuit din Internet. VB este popular datorit interfe ei grafice pe care o folose te. ceea ce îl face u or de memorat i ideal pentru încep tori. genera ia de utilizatori predecesoare erei PC-urilor a luat primul contact cu programarea prin intermediul calculatoarelor HC.NET) . astfel.y y y y ASP ( i ASP.pentru interac iunea cu bazele de date rela ionale Vezi i y y y y y y y Mediu de dezvoltare RPG (limbaj de programare) Tehnici de programare în FoxPro BASIC De la Wikipedia.) fara a fi nevoie de scrierea de cod pentru acest lucru. Aceasta se adreseaz mai mult avansa ilor. care aveau la baz acest o versiune de BASIC.pentru scripting web FoxPro (FoxPro. Este un limbaj simplu de înv at. ca de altfel si celelalte limbaje 'vizuale' ale Microsoft (mai putin Visual C++). creat de c tre compania Microsoft. este axat pe componenta de interfata a programului. butoane. Unul dintre cele mai bune editoare. Visual Basic detine o biblioteca de componente vizuale . creat în 1963 de c tre John G. liste etc. Kemeny i Thomas E. enciclopedia liber Salt la: Navigare. O variant de BASIC foarte popular este i Visual Basic. interfa relativ simpl fa de cea a altor limbaje. Cuprins [ascunde] y y y y 1 Prezentare 2 Evolutia limbajului Visual Basic 3 Exemplu 4 Vezi i Prezentare Visual Basic face parte din pachetul Visual Studio al companiei Microsoft si. care a fost derivat din limbajul Basic.

si Ruby continea doar un procesor de comenzi rudimentar suficient pentru rolul lui de shell pentru Windows. Unul dintre punctele forte ale libajului VB este acela ca se pot realiza intr-un timp relativ scurt aplicatii complexe si se pot utiliza relativ simplu sisteme informatice dedicate (cum ar fi bazele de date . [modific ] Exemplu 'Listarea tuturor caracterelor ASCII dim i as integer for i=0 to 255 print ASC(CHR(i)) next i 'Afi area cuvântului "BASIC" într-o caset msgbox "BASIC" de dialog .NET cu toate avantajele pe care acestea le aduc.(liste. Acest lucru are avantaje (cum ar fi rularea fara compilare sau portabilitatea intre platforme) dar si dezavantaje (cum ar fi necesitatea unei masini virtuale pentru interpretarea codului). Teoretic oricine (mai mult sau mai putin experimentat) poate utiliza VB pentru ca este un limbaj de programare simplu (calitate de baza a limbajului Basic din care provine). Ruby a pus la dispozitie partea "vizuala" a lui Visual Basic . educationale dar si la crearea de aplicatii complexe (ca de exemplu la jocuri . Pana la versiunea 6. adica orice cod scris in limbajul VB trebuie mai intai tradus intr-un limbaj de nivel inferior si dupa aceea executat (spre deosebire de limbajele native ex.NET. Microsoft a decis sa utilizeze shell-ul simplu Program Manager pentru Windows 3. C++). Utilizarea limbajului VB este una generala.VB poate utiliza toate sistemele de gestiune a bazelor de date cunoscute. adica odata cu aparitia tehnologiei .ex: Pharao). si a combinat Ruby cu limbajul Basic pentru a crea Visual Basic. Abordarea conectarii limbajului de programare la o interfata grafica pentru utilizator a fost derivata dintr-un prototip dezvoltat de Alan Cooper numit Tripod. direct sau prin intermediul ODBC). meniuri etc.0. VB putea utilizare si dezvolta componente COM/COM+ si ActivX dar si librarii clasice de functii tip DLL. Aceste gizmos extensibile ale lui Ruby au devenit mai tarziu interfata VBX. [modific ] Evolutia limbajului Visual Basic VB 1. putand fi folosit la crearea de programe simple. Odata cu aparitia versiunii 7. Visual Basic este un limbaj pur orientat pe obiecte (OO).designerul de forme si uneltele de editare impreuna cu posibilitatea de a incarca dynamic link libraries continand controale aditionale (numite generic "gizmos").NET) poate utiliza si crea si componente . sunt numele de cod Ruby (fara absolut nicio legatura cu Ruby programming language).) a caror componente (grafica si functionala) sunt deja implementate. Microsoft a apelat la Cooper si asociatii sai pentru a dezvoltat Tripod intr-un shell programabil pentru Windows 3.0 in locul lui Ruby. VB (acum VB .0 a fost introdus in 1991. Tripod nu a inclus niciun limbaj de programare. calendare. avand deja implementata o lista de clase cu utilizare generala. avand posibilitatea ca programatorul sa introduca si sa foloseasca componente proprii sau realizate de alti programatori. VB este un limbaj de nivel inalt avand implementate mai multe nivelui de abstractizare a dezvoltarii unei aplicatii dar si posibilitatea de compilare in formatul Windows EXE sau DLL de 16 si 32 biti. VB este un limbaj interpretat.

Este implementat pe majoritatea platformelor de calcul existente azi. care aveau nevoie de un limbaj simplu i portabil pentru scrierea nucleului sistemului de operare UNIX. i pentru portabilitatea sa. C#. A fost dezvoltat la începutul anilor 1970 de Ken Thompson i Dennis Ritchie. i este cel mai popular limbaj de programare pentru scrierea de software de sistem. enciclopedia liber (Redirec ionat de la Limbajul C) Salt la: Navigare. c utare The C Programming Language . de nivel mediu. Java. Este apreciat pentru eficien a codului obiect pe care îl poate genera. JavaScript. C este un limbaj de programare relativ minimalist ce opereaz în strâns leg tur cu hardware-ul. fiind cel mai apropiat de limbajul de asamblare fa de majoritatea celorlalte limbaje de programare. C este un limbaj de programare standardizat. World!" 3 Tipuri de date 4 Alocarea memoriei 5 Sintaxa . edi ia original ce a servit pentru mul i ani ca manual de referin al limbajului C. Sintaxa limbajului C a stat la baza multor limbaje create ulterior i înc populare azi: C++. de Brian Kernighan i Dennis Ritchie.C (limbaj de programare) De la Wikipedia.Limbajul de programare C. compilat. Cuprins [ascunde] y y y y y 1 Scurt introducere în C 2 Un exemplu de program C: "Hello.

cu importante func ionalit i cum ar fi func iile matematice sau cele de manipulare ale fi ierelor Este focalizat pe paradigma program rii procedurale. C++ i Pascal o 7. dar f r a pune un obstacole în scrierea compilatorului de C.3 ANSI C i ISO C o 6. în compara ie cu alte limbaje de programare.4 C99 7 Diferen e între C. care este înc rcat de caracteristicile complexe ale limbajului. i nu prin referin Pointeri la func ii. Limbajul C apar ine clasei limbajelor de nivel sc zut sau de nivel mediu. C a fost creat având drept scop important de a face ca programele mari s poat fi scrise mai u or i cu mai pu ine erori în paradigma program rii procedurale.1 Începuturile limbajului de programare C o 6. care faciliteaz programarea într-un mod structurat Utilizeaz un set simplu de tipuri de date ce împiedic multe opera ii neinten ionate Folose te un limbaj preprocesor. în timp ce limbajele de asamblare sunt specifice unui anumit model de ma in . f cându-se astfel diferen ele principale fa de limbajele de asamblare: codul unui program C poate fi compilat i rulat pe aproape orice tip de ma in (calculator). preprocesorul C.2 C i C++ o 7. C are urmatoarele caracteristici importante: y y y y y y y y y Este un limbaj de baz simplu.2 K&R C o 6.y y y y 6 Istoric o 6. pentru sarcini cum ar fi definirea de macrouri i includerea mai multor fi iere surs Permite accesarea la nivel sc zut a memoriei calculatorului prin utilizarea pointerilor Permite folosirea parametrilor care sunt pasa i func iilor prin valoare.1 Compara ie cu limbajul Pascal o 7.3 Exemplu 8 Vezi i 9 Bibliografie [modific ] Scurt introducere în C C este prezentat uneori ca "asamblor portabil". ce permit forme rudimentare de closure i polimorfism Declarea variabilelor Structuri de date sau tipuri de date agregate definite de utilizator (struct) ce permit ca date înrudite s fie combinate i manipulate ca un întreg Printre caracteristicile ce lipsesc în C dar care pot fi g site în alte limbaje de programare se enumer : y y y y y y y Un sistem automat de colectare a reziduurilor (de memorie) Clasele i obiectele (programarea orientat pe obiecte) Un sistem avansat de tipuri de date Programarea generic Supraînc rcarea Metaprogramarea Suport nativ pentru programarea multifir i func iile de re ea . aceasta indicând cât de strâns este leg tura de interoperabilitate cu echipamentul hardware.

aceasta nu reprezint un dezavantaj important pentru a face limbajul C s nu fie acceptat în practic . World!" Urm torul exemplu de program a ap rut în prima edi ie a c r ii lui Brian Kernighan i Dennis Ritchie. deoarece permite ca noi compilatoare s poat fi scrise pe noi tipuri de platforme i pentru c permite programatorului s in bine sub control programul pe care îl scrie.h> Prima linie a programului reprezint o directiv preprocesor. combinat cu complexitatea noilor tipuri de procesoare. va produce unele mesaje de avertizare dac va fi compilat de un compilator ce respect standardul ANSI C. Programul afi eaz ÄHello World!³ la ie irea standard. În acest caz.y Procesarea listelor De i lista minusurilor limbajului C este destul de lung . #include. dar performan a avansat a compilatoarelor.h²care con ine . Una din consecin ele accept rii i eficien ei C-ului este aceea c multe compilatoare. #include <stdio. Mai mult. aducând câteva schimb ri minore programului original: #include <stdio. Numai un cod scris cu foarte mare grij într-un limbaj de asamblare poate fi mai performant. biblioteci i interpretoare ale limbajelor de nivel înalt sunt adesea implementate în C. } Programul prezentat mai sus va fi compilat corect de marea majoritate a compilatoarelor moderne. Aceste mesaje pot fi eliminate. a f cut ca limbajul C s fie preferat i s fie acceptat din ce în ce mai mult de programatori. returnând mesaje de eroare dac compilatorul va respecta strict standardele C99. Acesta este unul din motivele care face ca un cod scris în C s fie mult mai eficient decât dac ar fi scris în alte limbaje de programare. Totu i. World!\n"). fi ierul header stdio. indiferent de limbajul de programare. World!\n"). depinzând cum a fost mapat ie irea standard în momentul execu iei programului. deoarece variabila de întors de tip int nu va putea fi dedus dac nu a fost specificat în codul surs .h> main() { printf("Hello. care este de obicei un terminal sau monitor.h> int main(void) { printf("Hello. codul nu va fi compilat. i a devenit un exemplu standard de program introductiv în marea majoritate a c r ilor de programare. [modific ] Un exemplu de program C: "Hello. deoarece are control integral asupra ma inii. return 0. Aceasta face ca preprocesorul² primul utilitar ce examineaz codul surs când acesta este compilat²pentru a substitui linia respectiv cu con inutul unui fi ier sau al entit ii la care se face referire. Poate s fie totu i i un fisier sau alt dispozitiv hardware. } Urmeaz o discu ie linie cu linie a programului prezentat mai sus: #include <stdio.

h indic c acel fi ier poate fi g sit într-una din loca iile date preprocesorului prin search path (caut calea) fi ierelor header (aceste fi iere se afl în directorul "include/" al platformei respectiv compilatorului folosit). Când un program C este executat. [modific ] Tipuri de date . Metoda main este obligatorie ca un program s fie executat. Pe majoritatea platformelor aceast constant are valoarea zero. Parantezele unghiulare ce cuprind stdio.h> #include <stdlib. World!\n". return 0.h. (void) indic faptul c func ia main nu prime te nici un argument ori de câte ori este apelat . dar nu este folosit în acest caz. pentru a muta cursorul pe linia urm toare. Por iunea de cod int indic faptul c func ia de întoarcere²valoare pe care func ia main o va întoarce²este un întreg. printf("Hello World\n"). Aceasta linie apeleaz ²caut i execut codul²func ia printf. return EXIT_SUCCESS.h> int main(void) { printf("Hello world!\n"). { Paranteza acolad deschis indic începutul codului pentru func ia main. care a fost definit în fi ierul header stdio. int main(void) Urm toarea linie indic faptul c func ia numit main este definit . Secven a \n este denumit secven escape care se traduce prin caracterul EOL²end-of-line (sfâr itul liniei)². func iei printf îi este pasat un singur argument. Aceast func ie termin execu ia codului func iei main i face ca aceasta s întoarc valoarea 0 procesului apelant. } Paranteza acolad închis indic c aici se termin codul pentru func ia main. Func ia main are un loc bine definit în programele C.h de aceea am fost nevoi i s îl includem. irul de caractere "Hello. Valoarea de întoarcere a func iei printf este un întreg int. Compatibilitatea total cu alte compilatoare care respect standardul C99 poate fi ins atins prin urm torul cod: #include <stdio. } Constanta EXIT_SUCCESS este definit în headerul stdlib. În cadrul acestui apel. în cazul acesta sistemului de operare. aceasta este prima metod executat .defini iile func iilor intr rii i ie irii standard²va înlocui acea linie.

C utilizeaz foarte mult pointerii. C ofer posibilitatea de lucru cu tablouri multidimensionale. tratându-le ca pe tablouri utilizând libr ria standard. C este adesea folosit în programarea de nivel sc zut. Acest lucru permite expresiilor ce utilizeaz pointeri s fie evaluate dup tipul de dat . În momentul rul rii unui program. irurile de caractere (text string) sunt adesea reprezentate printr-un pointer la un vector de caractere. un tip de referin foarte simplu care p streaz adresa loca iei din memorie. Acest tip de alocare a memoriei se nume te static deoarece loca ia i dimensiunea lor nu variaz pe durata de execu ie a programului. Cuprinde tipuri de date cum ar fi întregi de diferite dimensiuni cu sau f r semn. unde poate fi necesar ca un întreg s fie tratat ca o adres de memorie. dar totu i cu anumite diferen e. un pointer reprezint o adres de memorie. Adresa poate fi manipulat cu ajutorul atribuirilor i a aritimeticii pointerilor. C furnizeaz trei metode distincte de alocare a memoriei pentru obiecte: y y Alocarea static a memoriei: adresele i dimensiunile obiectelor ce fac uz de alocarea static a memoriei sunt fixate în momentul compil rii i pot fi plasate într-o zon de dimensiune fix ce corespunde unei sec iuni din cadrul fi ierului linkedidat final. valorile index pot dep i dimensiunea actual a unui tablou. Ace ti pointeri sunt foarte folositori în programarea generic . Prin urmare. enumer ri (enum). Deoarece dimensiunea i tipul obiectelor la care acest tip de pointeri face referire sunt necunoscute. [modific ] Alocarea memoriei Una din cele mai importante func ii ale unui limbaj de programare este ca acesta s furnizeze metode de management a memoriei i al obiectelor stocate în memorie. Din punct de vedere semantic tablourile multidimensionale sunt tablouri de tablouri. static cunoscut la momentul compil rii. exist i pointeri de tip void. De exemplu. Acest lucru este folositor în cazuri speciale cum ar fi pointerul next (urm torul) în nodul final al unei liste înl n uite. În C. fapt ce indic c ace tia fac referire la un obiect de tip necunoscut. Spre deosebire de multe alte limbaje de programare. numere în virgul mobil . ace tia nu pot fi dereferen ia i. Un pointer null are o valoare rezervat indicând faptul c face referire la o loca ie nevalid . tablourile sunt de dimensiune fix . structuri de date (struct) i uniuni (union). Pointerii au mai multe utiliz ri în C. dar pot fi converti i la alt tip de pointeri. . Alocarea dinamic a memoriei este realizat tot cu ajutorul pointerilor. Pentru astfel de cazuri C ofer operatorul de casting.C are un sistem de tipuri de date similar cu cel al descenden ilor ALGOL cum ar fi Pascal. în practic acest lucru nu reprezint o piedic . Alocarea automat a memoriei: obiectele temporare (variabilele locale declarate în cadrul unui bloc de cod) sunt stocate în memorie. dar din punct de vedere fizic acestea sunt stocate ca un singur tablou unidimensional cu un offset calculat. având în vedere c se pot aloca blocuri de memorie în momentul rul rii. care for eaz explicit conversia unei valori dintr-un tip de dat în alt tip de dat . Dereferen ierea unui pointer null poate cauza un comportament nepredictibil al aplica iei. un num r în virgul mobil ca un întreg sau un tip de pointer ca un alt tip de pointer. C reprezint tablourile ca i pe pointeri: o adres i un tip de dat . un pointer este un tip de dat complex ce reprezint atât adresa de memorie cât i tipul de dat . iar spa iul alocat este automat eiberat i reutilizat dup ce s-a p r sit blocul în care acestea au fost declarate. În momentul compil rii. De asemenea. De asemenea.

alocarea automat sau static este preferat deoarece alocarea memoriei este coordonat de compilator. indiferent dac au fost sau nu declarate ca statice. Variabilele alocate static au alocat loca ia lor de memorie i ini ializat înainte ca func ia main s fie executat i nu sunt dealocate pân când se termin execu ia func iei main. Cu ajutorul unei variet i de operatori implementa i în C se pot realiza opera ii aritmetice. con in alte declara ii de variabile i comenzi. prin scrierea tipului de dat i urmat de numele variabilei. Cuvinte cheie precum char.y Alocarea dinamic a memoriei: blocuri de memorie de orice dimensiune pot fi alocate într-o zon de memorie numit heap prin intermediul func iilor malloc(). Comenzile execut ac iuni cum ar fi cele de modificare ale valorii unei variabile sau afi area unui text la consol . calloc() i realloc(). pe bi i. Aceste blocuri de memorie pot fi reutilizate dup ce zona de memorie a fost eliberat prin apelul func iei free(). realizate cu ajutorul cuvintelor rezervate if. O variabil alocat static are avantajul s î i p streze valoarea chiar dac func iile care acceseaz acea valoare nu mai sunt active. la rândul lor. logice. [modific ] Sintaxa Vezi i Sintaxa limbajului C Spre deosebire de alte limbaje de programare cum ar fi Fortran 77. Urm toarele tipuri de variabil sunt alocate static: y y toate variabilele globale. Nu toate variabilele sunt automat alocate. else. Variabilele alocate static nu sunt reini ializate la fiecare apel al func iei în cadrul c rora au fost declarate. Salturi arbitrare sunt posibile prin folosirea cuvântului cheie goto. Fiecare fi ier surs con ine declara ii de variabile i defini ii de func ii. Declara iile de variabile fie definesc noi tipuri folosind cuvinte cheie precum struct. l sând programatorul s . Func iile. variabilele locale declarate explicit ca fiind statice. C-ul are o form liber . union i enum sau atribuind un tip de date predefinite. Structurile de control sunt variabile pentru execu ii condi ionale sau itera ii. Totu i. Acolo unde este posibil. Comenzile pot de asemenea apela func ii. switch. Un exemplu ar fi tablourile de dimensiuni variabile. nemaifiind nevoie ca programatorul s aloce iar apoi s elibereze memoria . multe structuri de date sunt variabile în dimensini i deoarece alocarea automat i cea static trebuie s fie de dimensiune fix în momentul compil rii.opera ie ce adesea genereaz erori. sunt multe situa ii în care alocarea dinamic trebuie folosit . indexarea tablourilor i atribuiri. incluzând un num r mare de func ii din bibliotecile standard ale limbajului C. precum i pointerul la unul din aceste tipuri * reprezint tipuri de date implementate nativ în C. int. while i for. do. Comentarii pot fi înserate oriunde în cadrul programului utilizând delimitatorii /* i */.i organizeze codul folosind spa iile albe. [modific ] Istoric [modific ] Începuturile limbajului de programare C . Sec iuni de cod sunt incluse între paranteze acolade ({ i }) pentru a indica pentru ce por iune a codului se aplic declara iile de variabile i celelalte structuri de control. comparative. necesare pentru realizarea diferitelor sarcini cerute de programator.

Astfel. a ap rut un nou limbaj de programare. dar din lipsa de resurse i datorit faptului c acesta trebuia s suporte mai mult de 100 de utilizatori. cunoscut în cercul programatorilor sub numele K&R. dar era o munc destul de dificil având în vedere c totul era scris în limbaj de asamblare. Dennis Rithie i Brian Kernighan au publicat prima edi ie a c r ii Limbajul de programare C (eng. Au decis ca eventual s porteze acest sistem de operare pe ma inile PDP-11 pe care ace tia le foloseau în birou. de exemplu: i += 10 comparat cu i = +10). scris ini ial în limbaj de asamblare pentru PDP 11/20. Dar aceast ma in nu avea un sistem de operare. chiar i dup introducerea standardului ANSI C. Mai târziu. . cea mai creativ perioad a avut loc în 1972. a a c au hot rât s scrie unul. astfel încât mare parte a kernelului Unix. Pentru mul i ani. iar o secven de cod scris în K&R C respect i ANSI C. a servit pentru mul i ani ca un mijloc de informare asupra specifica iilor limbajului C. Acesta a fost unul din primele kernele ale unui sistem de operare scris într-un limbaj de programare. Thompson i Ritchie. nemul umi i de controlul pe care îl aveau asupra navei în încercarea de a evita asteroizii. a fost considerat ca fiind Äcel mai mic numitor comun³ pe care programatorii în C trebuie s -l respecte atunci când se vorbe te de portabiliitate maxim . Dup spusele lui Dennis Ritchie. Au încercat folosind limbajul de programare B. Ace tia îl jucau pe calculatorul principal al companiei. Aceast carte. [modific ] K&R C În 1978. limbajul de programare C a fost folosit pentru a rescrie sitemul de operare. The C Programming Language). A fost denumit ÄC³ deoarece multe din caracteristicile sale au fost derivate din limbajul de programare ÄB³. precum i ceilal i operatori înrudi i (=+ producea confuzii analizorului lexical al compilatorului limbajului C. A a c au decis s foloseasc un limbaj portabil de nivel înalt astfel încât sistemul de operare s poat fi portat cu u urin de pe un computer pe altul. K&R C este adesea considerat limbajul de baz pe care orice compilator C trebuie s -l suporte. K&R aduce în discu ie urm toarele caracteristici ale limbajului: y y y y Tipul de dat struct Tipul de dat long int Tipul de dat unsigned int Operatorul =+ a fost schimbat în +=. Începând cu anul 1973. nefolosit. dar îi lipseau unele din func ionalit ile care ar fi f cut facil folosirea unor caracteristici avansate a ma inii PDP-11. Prima versiune a sistemului de operare Unix a fost scris în limbaj de asamblare. numit C. cum ar fi: y y Dezvoltarea limbajului C a fost rezultatul dorin ei programatorilor de a juca un joc de tipul Asteroids. Sunt multe legende despre originea limbajului C i leg tura sa cu sistemul de operare Unix. limbajul de programare C a devenit destul de robust. Versiunea limbajului C descris este cunoscut sub numele K&R C. au decis s porteze jocul pe un PDP-7. altul decât limbajul de asamblare. din birou. Încerc ri anterioare au fost pentru scrierea sistemului Multics (scris în PL/I) i TRIPOS (scris în BCPL).Etapa ini ial de dezvoltare a limbajului de programare C a avut loc în cadrul laboratoarelor AT&T Bell între anii 1969 i 1973. deoarece nu toate compilatoarele sunt scrise înc s suporte standardul ANSI C. Justificarea pentru ob inerea primului computer care a fost utilizat pentru dezvoltarea sistemului de operare Unix a fost acela de a crea un sistem pentru a automatiza completarea autoriza iilor. a fost rescris în C.

În anii 1980 a fost adoptat i de calculatoarele IBM PC. Obejective-C este folosit pentru dezvoltarea aplica iilor pe ce folosesc interfa a Cocoa a sistemului de operare Mac OS X. ANSI C este suportat de marea majoritate a compilatoarelor folosite ast zi. Mare parte din codul C scris acum este bazat pe ANSI C. de exemplu pentru interfa a grafic . De i nu la fel de popular ca C++. (ii) unele compilatoare ce nu respect standardul ANSI C. Limbajul rezultat a fost denumit C++ i este cel mai popular limbaj de programare pe sistemele de operare Microsoft Windows. deci i urma ii lor în mod implicit sau (iii) bazarea pe dimensiunea unui anumit tip de date pe anumite platforme.159-1989 "Programming Language C". Alt limbaj de programare dezvoltat în acea vreme se nume te ObjectiveC care adaug de asemenea C-ului caracteristici ale program rii orientate pe obiecte. încorporând multe dintre caracteristicile neoficiale introduse secven ial. American National Standards Institute (ANSI) a format un comitet. Parametrii func iilor nu erau verifica i dup tip. X3J11. În acest timp. deoarece (i) se folosesc biblioteci non-standard.În primele versiuni C. precum i de al i produc tori. Aceast versiune a limbajului ne este cunoscut sub numele ANSI C. Una din intele procesului de standardizare ANSI C a fost acela de a produce un superset al K&C R. Orice program scris exclusiv în standardul C este garantat s func ioneze corect pe orice platform cu o implementare C conform . popularitatea acestuia începând s creasc semnificativ. standardul a fost terminat în 1989 i ratificat ca ANSI X3. [modific ] ANSI C i ISO C La sfâr itul anilor 1970. pentru a stabili specifica iile unui limbaj C standard. Acestea includ: y y y y y y y y func iile void i tipul de date void * func iile care întorc tipul struct sau union numele câmpurilor unei structuri struct într-un spa iu de nume pentru fiecare tip de structur atribuirea pentru tipurile de date de tip struct calificatorul const pentru a face un obiect de tip Äread only³ o bibliotec standard încorporând func ii implementate de diver i dezvoltatori enumera iile tipul float în precizie simpl . multe programe sunt scrise astfel încât aceste vor putea fi compilate numai pe anumite platforme. sau folosind un anumit compilator. În anii ce au urmat publica iei K&C R. fiind suportate de compilatoarele celor de la AT&T. Bjarne Stroustrup împreun cu al i colegi de la Bell Labs au început s adauge limbajului C caracteristici ale program rii orientate pe obiecte. cum ar fi prototipul func iilor (împrumutat din C++) i un preprocesor mult mai capabil. totu i unele compilatoare afi au un mesaj de aten ionare dac o func ie era apelat cu un num r gre it de argumente. standardul ANSI C (cu mici modific ri) a fost adoptat de International Organization for Standardization (ISO) ca ISO/IEC 9899:1990. numai func iile care returnau o valoare non-integer trebuiau s fie definite sau declarate înainte de folosire. C a început s înlocuiasc limbajul BASIC devenind cel mai utilizat limbaj de programare. [modific ] C99 . în 1990. totu i C-ul r mâne cel mai popular limbaj de programare în Unix. Totu i. Dup un proces îndelungat. În 1983. comitetul pentru standardizare a introdus câteva caracteristici noi. câteva caracteristici Äneoficiale³ au fost ad ugate limbajului C. Totu i. Despre o func ie folosit f r ca aceasta s fi fost declarat în prealabil se presupunea c întoarce un întreg.

(Amendamentul Normativ I a creat o nou versiune a limbajului C în 1995. în timp ce C++ a continuat s evolueze. int i. incluzând i long long int (pentru a reduce efortul legat de tranzi ia de la 32-bi i la 64-bi i). writeln.) Totu i. i:=i+1 i:=i-1 var i: integer if(a=b) then read(var). i--. la sfâr itul anilor 1990. standardul a suferit o revizie. Acest standard este cunoscut sub numele ÄC99³.i<=n.i++) i=a. [modific ] Diferen e între C. Explica ii Început bloc Sfâr it bloc Instruc iune condi ional Repet cat timp Valoarea variabilei a e diferit de valoarea variabilei b For Atribuire Incrementare Decrementare Declarare variabil (în C++ se poate declara oriunde în program/ func ie) Dac a egal cu b Citire de la intrarea standard (de obicei tastatur ) Scriere la ie irea standard (de obicei ecran) Tip re te o linie nou . write('text '. A fost adoptat ca standard ANSI în martie 2000. un tip explicit de date boolean i un tip complex de date reprezentând numerele complexe tablourile de dimensiuni variabile suport pentru comentariile pe o singur linie. marcate la început de //. Noile aspecte ale limbajului C includ: y y y y y y y func ii inline variablele pot fi declarate oriunde în cadrul unui program (la fel ca i în C++) câteva noi tipuri de date.h În ceea ce prive te interesul în adoptarea noului standard C99. C++ i Pascal [modific ] Compara ie cu limbajul Pascal Sintaxa Pascal begin end. dac GCC i alte compilatoare suport noile caracteristici C99. var). Sintaxa C i C++ { } if(<cond>) while(<cond>) a!=b for(i=1. conducând la publicarea standardului ISO 9899:1999 în anul 1999.Dup procesul de standardizare ANSI. cum ar fi snprintf() noi fi iere header. dar aceast versiune este prea pu in cunoscut . if(a==b) scanf("%s". / end if (<cond>) then while(<cond>) do a<> b for i:=1 to n do i:=a. printf("\n"). var). &var). printf("text %s". cum ar fi stdint. ca i în BCPL sau C++ i care au fost suportate de multe compilatoare ca o extensie a limbajului C noi func ii. specifica iile limbajului de programare C au r mas nemodificate pentru o perioad . i++. compilatoarele celor de la Microsoft i Borland nu suport C99 i cele dou companii nu par interesate în a oferi nici un fel de suport.

Cea mai ampl revizie a limbajui C. compatibilitatea dintre ele fiind util dar nu vital . sizeof('a') == sizeof(char). au ap rut. Cele mai importante diferen e sunt: apar în a a zisele Äfi iere statice³.) y În C++. în C++ este echivalent cu typedef struct S {} S. y Cuvinte cheie suplimentare au fost introduse în C++. Unii au argumentat c C i C++ sunt dou limbaje de programare distincte. în C. valoarea acestui tip de constante nu va dep i valoarea maxim ce poat fi p strat de char. Totu i. delete. read(i). new. end. a sugerat de nenum rate ori [2] s se reduc incompatibilit ile pe cât de mult posibil pentru a maximiza interoperabilitatea dintre cele dou limbaje de programare. În variantele anterioare de C tipul de date boolean nu era definit. C99.[modific ] C i C++ Limbajul de programare C++ a fost ini ial derivat din C. Bjarne Stroustrup. code>try. a creat un num r suplimentar de conflicte. i produce confuzii celor care programeaz în ambele limbaje. deci acestea nu pot fi folosite ca identificatori a a cum ar putea fi folosite în C. astfel încât struct S {}. y Constantele caracter (cuprinse între apostrofuri) au dimensiunea unui int în C i char în C++. <stdbool. compilatorul creeaz automat o Äetichet ³ pentru orice structur (struct).h>. Cuvântul cheie bool are în C99 propriul s u header. . Deoarece C i C++ au evoluat independent. uniune (union) sau enumera ie (enum). iar in C acestea C99 a adoptat unele func ionalit i ce au ap rut ini ial în C++. catch. Chiar i în aceste condi ii. potrivit acestei opinii. . sizeof('a') == sizeof(int). deci o conversie de genul (char)'a' este sigur . begin writeln('introduceti un nr:'). template. var i:integer. Printre acestea se enumer : y y y Declararea obligatorie a prototipului func iilor Cuvântul cheie inline Eliminarea variabilei implicite int ca valoare de întoarcere.. nu absolut orice program scris în C este valid C++. Pascal: program test. (de exemplu.. în C. din nefericire. în schimb erau folosite o serie de metode (incompatibile) pentru a simula acest tip de date. [modific ] Exemplu Un program care cite te un num r întreg i îl afi eaz . Diferen ele fac ca fiecare din cele dou limbaje de programare s împrumute din caracteristicile celuilalt limbaj de programare. creatorul limbajului C++. eforturile de a reduce incompatibilitatea nu trebuie s reduc eforturile de a aduce elemente noi în mod independent celor dou limbaje de programare. Diferen ele fac s fie greu de scris programe i biblioteci care s fie compilate i s ruleze corect în calitate de cod C sau C++. o serie de incompatibilit i între cele dou limbaje de programare [1]. în C++. y y inline ²func iile inline apar în sec iunea de declarare a variabilelor globale în C++. Cu alte cuvinte.

În anii 1990. i). //citire numar introdus la tastatura printf("%d". //citire return 0. Cuprins [ascunde] y y y y 1 Istoricul C++ 2 Exemplu 3 Vezi i 4 Note . versiunea curent fiind din 2003. ca o serie de îmbun t iri ale limbajului C. este în lucru. r mânând astfel pân azi[1]. supraînc rcarea operatorilor. compilat. abloane (englez template) i excep ii. cunoscut informal ca C++0x. Limbajul de programare C++ a fost standardizat în 1998 ca i ISO 14882:1998.&i).h> // contine declaratiile functiilor de intrare/iesire int main() // program principal { int i. programare orientat pe obiecte.C: #include <stdio. Acestea au început cu ad ugarea no iunii de clase. ISO 14882:2003. } C++ De la Wikipedia. Este un limbaj multi-paradigm . apoi de func ii virtuale. Urm toarea versiune standard. enciclopedia liber Salt la: Navigare. mo tenire multipl . //afi are num r citit return 0. } C++: #include <iostream> // contine declaratiile functiilor de intrare/iesire int main() // program principal { int i. std::cin>>i. std::cout<<"Introduceti un nr:". c utare C++ (pronun at în român "C plus plus" i în englez "si plas plas") este un limbaj de programare general. abstractizare a datelor. cu verificarea static a tipului variabilelor ce suport programare procedural . C++ a devenit unul din cele mai populare limbaje de programare comerciale. scanf("%d". Bjarne Stroustrup de la Bell Labs a dezvoltat C++ (ini ial denumit C cu clase) în anii 1980. printf("Introduceti un nr:").

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

} . int main() { cout<<"Hello World". return 0.using namespace std.

Sign up to vote on this title
UsefulNot useful