Menu

Reklama

Reklama

C++ eshte e bazuar mbi gjuhen C. TE gjitha karakteristikat e gjuhes C mbeshteten edhe nga C++. C++ shton edhe disa tipare te reja dhe çka eshte me e rendesishme C++ ofron tekniken e programimit me objekte e cila tashme eshte bere nje teknike standarte e programimit. Ne do te fillojme pershkrimin tone duke folur per C.

·         Origjina e gjuhes C

Gjuha C eshte krijuar nga Denniss Ritchie per tu perdorur ne nje makine me sistem operativ Unix. 
C eshte eshte resultati i zhvillimit te nje gjuhe te quajtur BCPL. BCPL u krijua nga Martin Richards, dhe pati nje influence mbi nje gjuhe te quajtur gjuha B, e cila u krijua nga Ken Thompson. Gjuha B çoi ne krijimin e gjuhes C ne vitet 1970.
Per shume vjet standarti i gjuhes C ishte nje version qe vinte se bashku me Verisonin 5 te sistemit operativ Unix (Unix version 5). Eshte pershkruar per here te pare ne librin "The C programmin Language" nga Brian Kerninghan dhe Denis Ritchie ne 1978.
Ne vitin 1983 nje komitet u vendos qe te krijonte nje ANSI (American National Standards Institute) standart qe do te deklaronte gjuhen C njehere e pergjithmone.
PAs 6 vjetesh 1989 nje standard u pranua perfudnimisht dhe kopjet e para u bene te vlefshme ne fillim te 1990.
Standarti u pranua gjithashtu edhe nga ISO (International, Standards Organization). dhe tani ky standart quhet Standarti ANSI/ISO per C.
Ne do te flasim per Gjuhen C standarte. Ne ditet e sotme te gjithe kompilatoret per C/C++ permbushin kerkesat e standartit ANSI/ISO C dhe ne veçanti mund te ofrojne tipare te ndryshme shtese.
ANSI/ISO standard eshte baze mbi te cilen C++ eshte ndertuar.

·         C eshte nje gjuhe e nivelit mesatar (middle-level language)

Ju mund te keni degjuar per ndarjen e gjuheve te programimit ne nivele:
    1. Gjuhe e nivelit te larte (High-level language)
    2. Gjuhe e nivelit te mesem (High-level language)
    3. Gjuhe e nivelit te ulet (High-level language)
Gjuha C shpesh quhet gjuhe e nivelit mesatar (middle-Level language). Kjo nuk nenkupton qe gjuha C eshte e pak e fuqishme apo me veshtire per tu perdorur se sa gjuhet e nivelit te larte (high-level languages), as nuk do te thote qe C ka natyren e veshtire te nje gjuhe te nivelit te ulet.
Gjuha C mendohet si gjuhe e nivelit mesatar me shume sepse kombinon tiparet me te mira te gjuheve te nivelit te larte duke lejuar kontrollin dhe fleksibilitetin (perkulshmerine) e nje gjuhe assembler. Ne tabelen me poshte jept disa emra gjuhesh programimi te ndara sipas nivelit te tyre.
Gjuhe te Nivelit te larte (High-Level)
Ada
Modula-2
Pascal
COBOL
FORTRAN
BASIC
Gjuhe te nivelit mesatar (middle-level) Java
C++
C
FORTH
Gjuhe te nivelit te ulet (Low-Level) 
Macro Assembler
Assembler

Si nje gjuhe e nivelit te mesem Gjuha C lejon veprimin me bits dhe bytes dhe adresat (elementet baze me te cilet kompjuteri vepron, Pavaresisht nga ky fakt kodi i shkruar ne C eshte portabel. Portabel do te thote qe programe te shkruara per nje tip kompjuteri apo sistemi operativ mund to perdoren lehtesisht edhe per ndonje tip tjeter. P.sh Nese ju mund te konvertoni nje program te shkruar epr DOS lehtesiht qe te egzekutohet edhe ne Windows atehere ai program eshte portabel. (Portabel = "qe mund te mbahet kollaj nga nje vend ne nje tjeter")
Te gjithe gjuhet e nivelit te larte mbeshtesin konceptin e tipeve te te dhenave.
Nje tip te dhenash perkufizon nje bashkesi vlerash qe mund te ruhen ne nje variabel dhe veprimet qe mund te kryhen ne ate variabel.
Tipe te zakonshme te dhenash jane Integer (numrat e plote), Character (shkronja e simbole), dhe Real (numra reale).
C percakton 5 tipe te dhenash. Megjithate C nuk eshte nje gjuhe strikte mbi veprimet me keto tipe te dhenash, krahasuar me Pascal apo ADA.
C lejon thuajse te gjitha tipet e konvertimeve (ndryshimeve nga nje tip ne tjetrin). Per shembull ju mundeni kollaj te perzieni ne nje shprehje Integers me Characters.
Gjuha C eshte e veçante ne faktin qe lejon manipulimin e drejperdrejte te bite-ve, byte-ve dhe shenjuesve (pointers).
Nje tjeter aspekt i rendesishem i gjuhes C eshte se ka vetem 32 fjale te rezervuara. Gjuhet e nivelit te larte kane disa here me shume fjale te rezervuara. P.sh nje version i BASIC ka mbi 100 fjale te rezervuara.

·         C eshte nje gjuhe e strukturuar (structured language)

Gjuha C quhet gjuhe e strukturuar. Tipari kryesor i nje gjuhe te strukturuar eshte aftesia e gjuhes per te ndare dhe fshehur instruksionet qe kryejne nje detyre te veçante nga pjeset e tjera te programit.
Nje menyre per te arritur kete eshte duke perdorur procedura, funksione ne menyre qe gjerat qe kryhen brenda ketyre te mos shkaktojne efekte anesore mbi pjeset e tjera te programit.
Duke ndare programin ne pjese te ndryshme (funksione e procedura) lexueshmeria e programit eshte me e mire, testimi i programit mund te ndahet ne pjese pjese, çdo procedure , funksion testohet dhe pasi bindemi qe secla punon ne rregull me vete kur te testohen te gjitha ne bashkeveprim ne program eshte e nevojshme te dihet vetem se cfare ben funksioni dhe jo si e kryen ate qe ben. Gjithashtu duke perdorur variabla qe njihen vetem brenda funksioneve do te menjanohen gabimet logjike qe shpesh ndodhin dhe jane shume te veshtira te korrigjohen kur perdoren variablat globale.
Nganjehere disa gjuhe quhen block-structured. P.sh Pascal mund te quhet block-structured. Block-structured nenkupton qe procedurat/fuksionet mund te deklarohen edhe brenda nje procedure tjeter.
C nuk eshte block-structured pasi nuk lejon deklarimin e funksioneve brenda funksioneve.
Komponenti kryesor strukturor i gjuhes C eshte fuksioni.

·         Compilatoret dhe Interpreters

Kompilatori dhe interpreteri jane te dy programe te veçanta qe kryejne perkthimin e kodit te shkruar ne nje gjuhe programimi ne gjuhen e makines.
Çdo gjuhe programimi ka kompiluesin ose Interpreterin e vet. 
Shkurtimisht ndryshimi mese nje kompiluesi dhe nje Interpreteri eshte se nje kompilues e lexon te gjithe programin menjehere dhe ben perkthimin e programit te plote. 
Nje interpreter ben perkthimin e programit rresht per rresht. Ndersa ju shkruani programin sapo mbaroni rreshtin Interpreteri e perkthen ne gjuhen e makines.
Gjuha C eshte gjuhe e Kompiluar.

·         Forma e nje programi ne C

Tabela me poshte liston 32 fjalet e rezervuara te gjuhes C. Me fjale te rezervuar kuptojme nje fjale qe ka nje kuptim te veçante per kompilatorin e C-se.
auto
double
int
struct
break
else
long
switch
case
enum
register
typedef
char
extern
return
union
const
float
short
unsigned
continue
for
signed
void
default
goto
sizeof
volatile
do
if
static
while
27 nga fjalet e reservuara me siper ishin paraqitur nga krijuesit originale te gjuhes C. 5 fjale te tjera u shtuan gjate standartizimit te gjuhes C nga ANSI.
Duhet thene se perveç ketyre fjaleve kompilatore te ndryshem nga kompani te ndryshme mund te ofrojne fjale te tjera te rezervuara.
Duhet thene se C dhe C++ dallojne mes shkronajve te vogla dhe shkronjave te medha. P.sh else eshte ndryshe nga ELSE apo ElsE.
Te gjitha programet ne C perbehen nga nje ose me shume funksione. Te gjithe programet ne C duhet patjeter te kene nje funksion me emrin main. Ky eshte funksioni ku fillon egzekutimi i programit. Brenda ketij funksioni mund te thirren funksionet e tjere qe kryejne detyrat e e tyre te veçanta. Megjithese fjala main nuk eshte fjale e rezervuar ju nuk duhet te deklaroni ndonje variabel a funksion tjeter me emrin main. Sigurisht qe kjo do te turbullonte kompilatorin. 
int main( )
{
//ketu vjen kodi i programit
};

·         Librarite

Ju mund te krijoni programe ne C duke perdorur vetem funksione qe ju keni krijuar. Megjithate kjo eshte shume e rralle pasi as C as C++ nuk siguron ndonje fjale te rezevuar qe kryen p.sh Input/Output, apo llogaritje te nivelit te larte matematikor (p.sh cos x, sin x) apo veprimet me characters (shkronja e simbole). Do te ishte nje pune e madhe dhe perseritje e punes sikur keto funksione te shkruheshin nga fillimi nga cdo programues qe do te deshironte te kryente veprime te tilla.
Te gjithe kompilatoret e gjuhes C sjellin me vete nje librari standarte funksionesh qe kryejne detyrat me te zakonshme. Standart C++ percakton nje grup minimal funksionesh qe duhet te mbeshtetet nga te gjithe kompilatoret. Megjithate kompilatori qe perdorni ju mund te ofroje funksione te tjera. P.sh libraria standarte nuk perkufizon ndonje funksion grafik por kompilatori juaj mund te ju ofroje disa.
Libraria Standarte e C++ mund te ndahet ne dy pjese; Libraria e funksioneve standarte dhe libraria e klasave standarte. (me vone do te flasim mbi termin klase).
Libraria e funksioneve stadarte vjen ne C++ nga gjuha C. C++ mbeshtet te gjithe librarine e funksioneve qe Standart C percakton. Prandaj te gjitha funksionet stadarte ne C jane te vlefshem per perdorim ne C++.
C++ i shton edhe librarine e klasave te saj, Libraria e klasave te C++ ofron objekte qe mund te perdoren nga programet tuaja. (per kete do te flitet me ne detaj me poshte ne kete faqe)
C++ gjithashtu percakton edhe Librarine standarte te templateve (STL Standard Library of Templates) (edhe per kete librari do te flitet me poshte ne kete faqe)
Kur kompilatori ndeshet me nje thirrje te nje funksioni qe nuk eshte pjese e programit qe keni shkruar atehere kompilatori i mban emrin e ketij funksioni dhe ia kalon nje programi tjeter qe quhet Linker (lidhesi).
Linkeri pastaj kerkon Librarine ku ndodhet deklarimi i funksionit dhe kombinon kodin e funksionit me kodin ne programin tuaj.
Nese ju e perdorni ndonje funksion tuajin shpesh atehere mund ta vendosni ehde ate ne nje librari. 

·         Kompilimi ne skedare te ndryshem

Shume programe te shkruter permbahen ne nje skedar te vetem. Por kur kemi te bejme me programe te medha eshte me e ndihmueshme logjikisht nese grupojme funksione qe kryejne detyra te ngjashme apo qe kane lidhje me njeri tjetrin dhe ti ruajme ne nje skedar te veçante.
Ne kete menyre programi do te perbehet nga disa skedare te ndryshem. Gjuha C dhe C++ lejojne ndarjen e programit ne skedare te ndryshem.
Arsyeja kryesore qe C++ e lejon kete eshte sepse duke e ndare programin ne skedare te ndryshem atehere skedaret mund te kompilohen veç e veç dhe pastaj linkeri lidh se bashku keto skedare per te formuar kodin e plote te programit. Avantazhi qe fitohet eshte se skedaret qe nuk kane ndryshuar nuk kane nevoje te rikompilohen, vetem skedaret e ndryshuar kompilohen.

·         Skedaret me prapashtese .C dhe .CPP

Skedaret qe permbajne C code zakonisht kane prapashtesen .C. Skedaret qe permbajne kod ne C++ kane prapashtesen .CPP .
Nje kompilues C++ e perdor prapashtesen e skedarit per te dalluar se cfare tip programi po kompilon. Nese skedari mbaron me .C atehere kompiluesi supozon se po kompilon nje program ne C dhe nese skedari mbaron me .CPP supoxzon se po kompilon program ne C++.
Duhet thene se megjithese C eshte nje pjese e C++ dhe ne pergjithesi kodi qe shkruhet ne C kompilohet edhe ne C++, ka disa disa ndryshime te vogla mes dy gjuheve, prandaj do te kete disa raste kur kodi i shkruar ne C duhet te ruhet ne nje skedar me prpashtese .C ne menyre qe kodi te kompilohet si program ne C.

0 comments:

Post a Comment

 
Top