C Si C++.docx

  • Uploaded by: Nelu Turcanu
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View C Si C++.docx as PDF for free.

More details

  • Words: 1,937
  • Pages: 7
1

Liceul Academiei de Științe al Republicii Moldova

Referat la Tehnologii Informaționale Tema: Limbajele de programare C și C++

Realizat: Țurcanu Ion Chișinău, 201 7

Page 1 of 7

2

Prefață

Notiuni de programare Un calculator (computer) este o unealtă folositoare pentru rezolvarea unei game largi de probleme. Soluţia unei probleme se numeşte algoritm; acesta descrie o secvenţă de paşi (instrucţiuni) pe care calculatorul îi execută pentru a rezolva problema.Codul sursă (algoritmul scris în limbaj de programare) trebuie translatat în cod maşină(cod obiect) pentru a putea fi înţeles de calculator.Programele translatate în limbaj (cod) maşină sunt executabile.Un program scris în orice alt limbaj necesită translatare în limbaj maşină.Problema este că limbajul maşină este mult prea obscur, greu de descifrat şi de lucrat cu el.O abstractizare a acestui limbaj este limbajul de asamblare (assembly language). Un program scris în assembly este translatat în cod maşină de un program numit assembler.Dar chiar şi cu limbajele de asamblare este greu de lucrat. Un program scris într-un limbaj de nivel înalt de programare este translatat în limbaj nativ (assembly sau maşină) de un program numit compilator(compiler). Codul produs de compilator este apoi asamblat pentru a produce programul executabil.Procesul de compilare implică mai multe faze, toate transparente utilizatorului:   

Mai întâi preprocesorul (un alt program) caută anumite instrucţiuni speciale numite directive(precedate de) pe care le analizează şi execută. Apoi,compilatorultranslatează programul sursă în limbaj maşină. În final,linkerul (linkeditorul) leagă modulele obiect rezultate, rezolvă referinţele către funcţii şi alte module, şi produce fişierul executabil.

Limbaje de programare Noţiunea de limbaj de programare este definită ca fiind ansamblul format de un vocabular şi un set de reguli gramaticale, necesar instruirii unui computer pentru a realiza anumite activităţi. Altfel spus, limbajul de programare este o notaţie sistematică prin care se descrie un proces de calcul. 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"). Orice limbaj (natural sau artificial) presupune definirea unui set de reguli sintactice și semantice. Sintaxa reprezintă un set de reguli ce guvernează alcătuirea propoziţiilor dintr-un limbaj. În cazul limbajelor de programare echivalentul propoziţiei este programul. Semantica este un set de reguli ce determină „înţelesul” sau semnificaţia propoziţiilor într-un limbaj.

Page 2 of 7

3

Cuprins Prefață .................................................................................................................................................... 2 Notiuni de programare ........................................................................................................................ 2 Limbajul C - Scurt istoric ..................................................................................................................... 4 Limbajul C++-scurt istoric ................................................................................................................... 4 Care este diferența dintre C și C ++ .................................................................................................... 6 Comparația dintre C și C ++ ................................................................................................................ 6 C ........................................................................................................................................................... 6 C ++ ...................................................................................................................................................... 6

Page 3 of 7

4

Limbajul C - Scurt istoric

Limbajul C++-scurt istoric

Limbajul C a fost proiectat şi implementat de Dennis Ritchie între anii 1969 şi 1973 la AT&T Bells Laboratories, pentru programe de sistem (care până atunci erau dezvoltate doar în limbaje de asamblare). A fost numit “C” deoarece este un succesor al limbajului B, limbaj creat de Ken Thompson. Originile limbajului C sunt strâns legate de cele ale UNIX-ului, care iniţial fusese implementat în limbajul de asamblare PDP-7 tot de Ritchie şi Thompson. Deoarece limbajul B nu putea folosi eficient unele din facilităţile PDP-11, pe care vroiau să porteze UNIX-ul, au avut nevoie de un limbaj simplu și portabil pentru scrierea nucleului sistemului de operare UNIX.

In anul 1970, doi programatori,Brian Kerninghan si Dennis Ritchie, au creat limbajul C. Principalul scop pentru care a fost realizat acest limbaj este rescrierea sistemului de operare UNIX, pentru a-l face portabil pe toate platformele existente. Marele avantaj al limbajului C este acela de a fi extrem de flexibil si de a permite atat programarea la nivel inalt cat si la nivel scazut. C-ul este un limbaj procedural, asadar un program scris in C incepe de obicei cu definirea structurilor de date, apoi definirea functiilor pentru lucrul cu aceste structuri.Cresterea complexitatii programelor a dus la necesitatea elaborarii unor alte tipuri de limbaje. Astfel, destinate inteligentei artificiale, au aparut limbajele care au la baza notiunea de "cadru" si cele care pleaca de la ideea de "actor". Primele implementeaza operatii asupra unor modele de entitati; celelalte presupun faptul ca obiectele nu sunt simple elemente pasive asupra carora se fac anumite prelucrari, ci, dimpotriva, ca menirea acestor obiecte consta in a realiza prelucrarile asupra lor insile.De aici a pornit ideea de a grupa structurile de date cu operatiile care prelucreaza respectivele date. Astfel s-a nascut notiunea de obiect sau clasa. Proiectarea de programe utilizand clase se numeste programare orientata pe obiecte (OOP). Primele limbaje orientate pe obiecte au fost SIMULA (1965) si SIMULA-2 (1967). In anii '70 a aparut si celebrul limbaj SMALLTALK. Cel mai mare dezavantaj al lor a fost faptul ca au aparut ca limbaje de sine statatoare, avand o raspandire relativ redusa. Din acest motiv, putin programatori erau dispusi in acea vreme sa renunte la limbajele consacrate doar pentru a lucra obiectual.

În 1973, sistemul de operare UNIX este aproape în totalitate rescris în C, fiind astfel unul din primele sisteme de operare implementate în alt limbaj decât cel de asamblare. Cartea de referinţă care defineşte un standard minim este scrisă de Brian W. Kernighan şi Dennis Ritchie, "The C Programming Language" şi a apărut în 1978 (Prentice Hall). Între 1983-1989 a fost dezvoltat un standard international -- ANSI C (ANSI - American National Standards Institute). În 1990, ANSI C standard a fost adoptat de International Organization for Standardization (ISO) ca ISO/IEC 9899:1990, care mai este numit şi C90. Acest standard este suportat de compilatoarele curente de C. Majoritatea codului C scris astăzi are la bază acest standard. Orice program scris doar în ANSI C Standard va rula corect pe orice platformă ce are instalată o variantă de C. În anii următori au fost dezvoltate medii de programare C performante sub UNIX şi DOS, care au contribuit la utilizarea masivă a limbajului . Necesitatea grupării structurilor de date cu operaţiile care prelucrează respectivele date a dus la

In anul 1980, Bjarne Stroustrup a conceput limbajul "C with Classes". Acest limbaj a dus la imbunatatirea C-ului prin adaugarea unor noi facilitati, printre care si lucrul cu clase. In vara 1983, C-with-classes a

Page 4 of 7

5

apariţia noţiunilor de obiect sau clasă, în 1980, Bjarne Stroustrup elaborează “C with .Acest limbaj a dus la îmbunătăţirea C-ului prin adăugarea unor noi facilităţi, printre care şi lucrul cu clase. În vara 1983, C-withclasses a pătruns şi în lumea academică şi a instituţiilor de cercetare. Astfel, acest limbaj a putut să evolueze datorită experienţei acumulate de către utilizatorii săi. Denumirea finală a acestui limbaj a fost C++. Succesul extraordinar pe care l-a avut limbajul C++ a fost asigurat de faptul că a extins cel mai popular limbaj al momentului, C. Programele scrise în C funcţionează şi în C++, şi ele pot fi transformate în C++ cu eforturi minime. Cea mai recentă etapă în evoluţia acestui limbaj o constituie limbajul JAVA (1995) realizat de firma SUN, firmă cumpărată în 2010 de către Oracle. În concluzie, sintaxa limbajului C a stat la baza multor limbaje create ulterior și încă populare azi: C++, Java, JavaScript, C#.

patruns si in lumea academica si a institutiilor de cercetare. Astfel, acest limbaj a putut sa evolueze datorita experien-

ței săi. Denumirea finala a acestui limbaj a fost C++. Succesul extraordinar pe care il are limbajul C++ a fost asigurat de faptul ca a extins cel mai popular limbaj al momentului, C. Programele scrise in C functioneaza si in C++, si ele pot fi transformate in C++ cu eforturi minime. Cea mai recenta etapa in evolutia acestui limbaj o reprezinta limbajul JAVA, realizat de firma SUN, care nu este altceva decat un limbaj C++ putin modificat si extins. Interesanta este urmatoare afirmatie a lui Stroupstrup: "utilizatorii au inceput sa foloseasca C++ inainte ca specialistii sa aiba timpul necesar sa-i instruiasca pentru a-l folosi cu randament maxim". Intradevar, s-a constatat ca mare parte dintre compilatoarele de C++ existente nu sunt folosite decat pentru dezvoltarea de software structurat, si nu orientat pe obiecte (altfel spus, se lucreaza in C pe un compilator de C++).

Bibliografie: http://www.unixinside.org/papers/C++-Book/cap1.html file:///C:/Users/1/Downloads/Cursul_1_Doc%20(2).pdf

Page 5 of 7

6

Care este diferența dintre C și C ++ Diferența majoră dintre C și C ++ este că C este un limbaj de programare procedural și nu suportă clase și obiecte, în timp ce C ++ este o combinație atât a limbajului de programare orientat procedural, cât și a obiectului; prin urmare, C ++ poate fi numit un limbaj hibrid. Tabelul următor prezintă în detaliu diferențele dintre C și C ++.

Comparația dintre C și C ++ C

C ++

C a fost dezvoltat de Dennis C ++ a fost dezvoltat de Bjarne Stroustrup în 1979, cu Ritchie între 1969 și 1973 la predecesorul C ++ "C with Classes". AT & T Bell Labs. În comparație cu C ++, C este C ++ este un superset de C. C ++ poate rula majoritatea un subset al C ++. codului C in timp ce C nu poate rula codul C ++. C sprijină paradigma C ++ suportă atât paradigme de programare orientate programării procedurale pentru procedural, cât și obiect; prin urmare, C ++ este numită și o dezvoltarea codului. limbă hibridă. C nu suportă programarea Fiind un limbaj de programare orientat obiect, C ++ suportă orientată obiect;prin urmare, nu polimorfismul, încapsularea și moștenirea. are nici un sprijin pentru polimorfism, încapsulare și moștenire. În C (deoarece este un limbaj de programare procedural), datele și funcțiile sunt entități separate și libere.

În C ++ (atunci când este folosit ca limbaj de programare orientat obiect), datele și funcțiile sunt încapsulate împreună sub forma unui obiect.Pentru crearea clasei de obiecte, se furnizează un model al structurii obiectului.

În C, datele sunt entități libere În C ++, încapsularea ascunde datele pentru a se asigura că și pot fi manipulate prin cod structurile de date și operatorii sunt utilizați conform extern.Acest lucru se datorează destinației. faptului că C nu suportă ascunderea informațiilor. C, fiind o programare procedurală, este un limbaj condus de funcții.

În timp ce C ++, fiind o programare orientată obiect, este un limbaj orientat pe obiecte.

C nu suportă supraîncărcarea funcției și a operatorului.

C ++ suporta atat functionarea, cat si supraincarcarea operatorului.

C nu permite ca funcțiile să fie În C ++, funcțiile pot fi folosite în interiorul unei structuri. definite în interiorul structurilor. C nu are caracteristica spațiului de nume.

C ++ utilizează NAMESPACE care evită coliziuni de nume.

Page 6 of 7

7

Un spațiu de nume este o regiune declarativă care oferă un domeniu de aplicare identificatorilor (numele tipurilor, funcțiilor, variabilelor etc.) din interiorul acestuia. Spațiul de nume este folosit pentru a organiza codul în grupuri logice și pentru a preveni coliziunile de nume care pot apărea mai ales atunci când baza dvs. de cod include mai multe biblioteci. Toți identificatorii din domeniul de aplicare a denumirilor sunt vizibili unul fără celălalt. Identificatorii din afara spațiului de nume pot accesa membrii utilizând numele complet calificat pentru fiecare identificator. C utilizează funcții pentru intrare / ieșire.De exemplu scanfși printf.

C ++ utilizează obiecte pentru ieșirea de intrare. De exemplu cinși cout.

C nu suportă variabilele de referință.

C ++ suportă variabilele de referință.

C nu are suport pentru funcțiile C ++ suportă funcțiile virtuale și prietenii. virtuale și prietenii. C oferă malloc()și C ++ furnizează newoperator pentru alocarea memoriei și calloc()funcții pentru alocarea deleteoperator pentru de-alocarea memoriei. dinamică a memoriei și free()pentru de-alocarea memoriei. C nu oferă suport direct pentru C ++ oferă suport pentru tratarea excepțiilor.Excepțiile sunt tratarea erorilor (numită și folosite pentru erorile "grele" care fac codul incorect. tratarea excepțiilor)

Bibliografie: http://cs-fundamentals.com/tech-interview/c/difference-between-c-and-cpp.php

Page 7 of 7

Related Documents

C Si C++.docx
May 2020 10
Si
November 2019 57
Si
November 2019 70
Si
October 2019 56

More Documents from ""