P. 1
Limbaje de programare

Limbaje de programare

|Views: 502|Likes:
Published by marianaszekely

More info:

Published by: marianaszekely on Sep 02, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

05/11/2013

pdf

text

original

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

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

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

[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 . VB (acum VB . 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. 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.VB poate utiliza toate sistemele de gestiune a bazelor de date cunoscute. [modific ] Evolutia limbajului Visual Basic VB 1. Microsoft a decis sa utilizeze shell-ul simplu Program Manager pentru Windows 3. 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 . educationale dar si la crearea de aplicatii complexe (ca de exemplu la jocuri . 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).0 in locul lui Ruby. avand deja implementata o lista de clase cu utilizare generala.(liste. Microsoft a apelat la Cooper si asociatii sai pentru a dezvoltat Tripod intr-un shell programabil pentru Windows 3. C++). VB este un limbaj interpretat. direct sau prin intermediul ODBC).NET) poate utiliza si crea si componente . calendare.ex: Pharao). avand posibilitatea ca programatorul sa introduca si sa foloseasca componente proprii sau realizate de alti programatori.0 a fost introdus in 1991. Pana la versiunea 6. Abordarea conectarii limbajului de programare la o interfata grafica pentru utilizator a fost derivata dintr-un prototip dezvoltat de Alan Cooper numit Tripod. VB putea utilizare si dezvolta componente COM/COM+ si ActivX dar si librarii clasice de functii tip DLL.designerul de forme si uneltele de editare impreuna cu posibilitatea de a incarca dynamic link libraries continand controale aditionale (numite generic "gizmos").NET cu toate avantajele pe care acestea le aduc. si a combinat Ruby cu limbajul Basic pentru a crea Visual Basic. Aceste gizmos extensibile ale lui Ruby au devenit mai tarziu interfata VBX. meniuri etc. Utilizarea limbajului VB este una generala.NET. Odata cu aparitia versiunii 7. adica odata cu aparitia tehnologiei . 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). sunt numele de cod Ruby (fara absolut nicio legatura cu Ruby programming language). putand fi folosit la crearea de programe simple. si Ruby continea doar un procesor de comenzi rudimentar suficient pentru rolul lui de shell pentru Windows. Tripod nu a inclus niciun limbaj de programare. Visual Basic este un limbaj pur orientat pe obiecte (OO).) a caror componente (grafica si functionala) sunt deja implementate. Ruby a pus la dispozitie partea "vizuala" a lui Visual Basic .0.

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

i nu prin referin Pointeri la func ii.3 Exemplu 8 Vezi i 9 Bibliografie [modific ] Scurt introducere în C C este prezentat uneori ca "asamblor portabil". în timp ce limbajele de asamblare sunt specifice unui anumit model de ma in . C are urmatoarele caracteristici importante: y y y y y y y y y Este un limbaj de baz simplu. 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. dar f r a pune un obstacole în scrierea compilatorului de C.2 K&R 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 compara ie cu alte limbaje de programare. C++ i Pascal o 7. care este înc rcat de caracteristicile complexe ale limbajului.3 ANSI C i ISO C o 6.1 Compara ie cu limbajul Pascal o 7. preprocesorul C.y y y y 6 Istoric o 6. 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.4 C99 7 Diferen e între C.1 Începuturile limbajului de programare C o 6. aceasta indicând cât de strâns este leg tura de interoperabilitate cu echipamentul hardware. 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. 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 . 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).2 C i C++ o 7. Limbajul C apar ine clasei limbajelor de nivel sc zut sau de nivel mediu.

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

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

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

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

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

În primele versiuni C. totu i C-ul r mâne cel mai popular limbaj de programare în Unix.159-1989 "Programming Language C". Limbajul rezultat a fost denumit C++ i este cel mai popular limbaj de programare pe sistemele de operare Microsoft Windows. de exemplu pentru interfa a grafic . Despre o func ie folosit f r ca aceasta s fi fost declarat în prealabil se presupunea c întoarce un întreg. În anii ce au urmat publica iei K&C R. În acest timp. cum ar fi prototipul func iilor (împrumutat din C++) i un preprocesor mult mai capabil. În anii 1980 a fost adoptat i de calculatoarele IBM PC. sau folosind un anumit compilator. în 1990. [modific ] ANSI C i ISO C La sfâr itul anilor 1970. De i nu la fel de popular ca C++. American National Standards Institute (ANSI) a format un comitet. numai func iile care returnau o valoare non-integer trebuiau s fie definite sau declarate înainte de folosire. 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. comitetul pentru standardizare a introdus câteva caracteristici noi. ANSI C este suportat de marea majoritate a compilatoarelor folosite ast zi. pentru a stabili specifica iile unui limbaj C standard. standardul a fost terminat în 1989 i ratificat ca ANSI X3. Dup un proces îndelungat. Obejective-C este folosit pentru dezvoltarea aplica iilor pe ce folosesc interfa a Cocoa a sistemului de operare Mac OS X. încorporând multe dintre caracteristicile neoficiale introduse secven ial. 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 . deoarece (i) se folosesc biblioteci non-standard. Totu i. precum i de al i produc tori. Totu i. 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. fiind suportate de compilatoarele celor de la AT&T. Mare parte din codul C scris acum este bazat pe ANSI C. câteva caracteristici Äneoficiale³ au fost ad ugate limbajului C. [modific ] C99 . Parametrii func iilor nu erau verifica i dup tip. În 1983. Aceast versiune a limbajului ne este cunoscut sub numele ANSI C. multe programe sunt scrise astfel încât aceste vor putea fi compilate numai pe anumite platforme. deci i urma ii lor în mod implicit sau (iii) bazarea pe dimensiunea unui anumit tip de date pe anumite platforme. C a început s înlocuiasc limbajul BASIC devenind cel mai utilizat limbaj de programare. 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 . (ii) unele compilatoare ce nu respect standardul ANSI C. standardul ANSI C (cu mici modific ri) a fost adoptat de International Organization for Standardization (ISO) ca ISO/IEC 9899:1990. popularitatea acestuia începând s creasc semnificativ. X3J11. Bjarne Stroustrup împreun cu al i colegi de la Bell Labs au început s adauge limbajului C caracteristici ale program rii orientate pe obiecte.

C++ i Pascal [modific ] Compara ie cu limbajul Pascal Sintaxa Pascal begin end. 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 .h În ceea ce prive te interesul în adoptarea noului standard C99. i:=i+1 i:=i-1 var i: integer if(a=b) then read(var).i++) i=a. ca i în BCPL sau C++ i care au fost suportate de multe compilatoare ca o extensie a limbajului C noi func ii. conducând la publicarea standardului ISO 9899:1999 în anul 1999. int i. standardul a suferit o revizie. printf("text %s". la sfâr itul anilor 1990. Sintaxa C i C++ { } if(<cond>) while(<cond>) a!=b for(i=1. Acest standard este cunoscut sub numele ÄC99³. dar aceast versiune este prea pu in cunoscut .Dup procesul de standardizare ANSI.) Totu i. 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. i--. incluzând i long long int (pentru a reduce efortul legat de tranzi ia de la 32-bi i la 64-bi i). / end if (<cond>) then while(<cond>) do a<> b for i:=1 to n do i:=a. writeln. 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. var). [modific ] Diferen e între C. if(a==b) scanf("%s". var). în timp ce C++ a continuat s evolueze. write('text '. specifica iile limbajului de programare C au r mas nemodificate pentru o perioad . dac GCC i alte compilatoare suport noile caracteristici C99. cum ar fi stdint. &var). marcate la început de //.i<=n. cum ar fi snprintf() noi fi iere header. i++. (Amendamentul Normativ I a creat o nou versiune a limbajului C în 1995. 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. printf("\n").

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

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

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

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->