Gjuhët C/C++: Orientimi nga Objektet

Imazh me fjalët kyçe dhe operatorët e gjuhës C++

Programimi i orientuar nga objektet lindi ne fundin e viteve 70 dhe fillimin e viteve 80, fillimisht si një iniciativë për zgjerimin e gjuhës C nga informatikani danez Bjarnë Straustrup (Bjarne Stroustrup). Ky i fundit kishe vënë re disa cilësi interesante te gjuha Simulatë cilat nuk gjendeshin te gjuha C. Vetë Simulanuk mund të përdorej në modulet e sistemit Unix sepse ishte shumë e ngadaltë. Si pjesë e punës së tij te laboratorët Bell, Straustrupi u përball me problemin e përshtatjes së kernelit Unix për sistemet e shpërndara, problem për të cilin gjuha C e asaj kohe nuk mjaftonte. Për këtë arsye, ai mendoi ta zgjeronte gjuhën C me veçori të gjuhës Simula. Përveçse nga Simula, zgjerimet u ndikuan pjesërisht edhe nga gjuhë të tjera si ALGOL 68, Ada, etj.

Varianti i parë i zgjeruar i C-së u emërtua “C me Klasa” (“C with Classes”). Disa elementë kryesorë të shtuar ishin klasat, klasat derivate, dhe argumentat e paracaktuar. “C me Klasa” u riemërtua C++ në vitin 1983 (një emërtim tjetër informal i kësaj periudhe ka qenë edhe “C-ja e re”) kur u shtuan gjithashtu funksionet virtual, mbikalimi i funksioneve dhe operatorëve, referencat, kontrolli i përmirësuar i tipit, dhe komentet e një rreshti të vetëm (//). Zgjerimet e fundit të rëndësishme të gjuhës C++ ndodhën në fillimin e viteve 90 dhe përfshinin trashëgiminë e shumëfishtë, klasat abstrakte, funksionet statike, përjashtimet, etj.

Botimi i parë i librit “Gjuha e Programimit C++” (origjinali: “The C++ Programming Language”) u publikua në vitin 1985. Në analogji të plotë me librin “Gjuha e Programimit C”, edhe ky libër pati sukses shumë të madh dhe u kthye në referencën kryesore të gjuhës C++. Vetë Straustrupi e ka përshkruar gjuhën C++ si një “gjuhë programimi me abstraksion të lehtë (light-weight) të projektuar për ndërtimin dhe përdorimin e abstraksioneve elegantë dhe efikasë”. Cilësia kryesore e gjuhës C++ është pikërisht ofrimi i qasjes te hardueri nëpërmjet cilësive të C-së si një nënbashkësi e saj, kombinuar me abstraksionet e fuqishme të cilat nuk shkaktojnë ngadalësim në ekzekutim.

Orientimi nga objektet që përbën cilësinë bazë të gjuhës C++ e lehtëson së tepërmi zhvillimin dhe mirëmbajtjen (dokumentimin, përditësimin, zgjerimin, etj.) e kodit të programeve kur këta të fundit arrijnë përmasa të mëdha. Njësoj si gjuha C, edhe C++ bazohet te kompilatori, pra programet nuk mund të ekzekutohen pa u kompiluar paraprakisht. Zhvillimi i gjuhës C++ është udhëhequr nga një tërësi parimesh si:

  • Veçoritë që shtohen duhet të jenë të gatshme për përdorim në programe konkrete. 
  • Secila veçori duhet të jetë e zbatueshme, pra duhet të ketë një mënyrë të qartë zbatimi. 
  • Programuesit duhet të jenë të lirë të zgjedhin stilin e dëshiruar të programimit, stil që duhet të mbështetet plotësisht nga gjuha C++.
  • Lejimi i veçorive të dobishme është më i rëndësishëm se sa parandalimi i çdo përdorimi të gabuar 
  • Duhet të mundësohen mënyra dhe mjete për organizimin e programeve në pjesë të ndara dhe të qarta, si dhe mënyra për kombinimin e pjesëve të zhvilluara veçmas. 
  • Nuk duhet të lejohen përjashtime implicite nga sitemi i tipeve, por mund të lejohen përjashtime eksplicite, p.sh. të kërkuara nga programuesi. 
  • Tipet e krijuara nga përdoruesi duhet të kenë të njëjtën mbështetje dhe shpejtësi ekzekutimi me tipet e gatshme. 
  • Nuk duhet të ketë gjuhë të ndërmjetme poshtë gjuhës C++, pra kodi C++ përkthehet direkt në kod makine. 
  • Gjuha C++ duhet të përdoret paralelisht me gjuhët e tjera të programimit dhe jo të nxiti një mjedis zhvillimi të sajin, të veçuar. 
  • Nëse qëllimi i programuesit është i pakuptueshëm, ai/ajo duhet lejuar ta specifikojë.

Parimet e mësipërme e kanë shndërruar gjuhën C++ në një nga gjuhët më të përdoruara të kohëve të sotme. Disa nga zbatimet më të rëndësishme të gjuhës C janë: 

  • Zhvillimi i module të caktuara të sistemeve operative, sidomos i ndërfaqeve grafike të cilat kërkojnë abstraksione të larta. 
  • Zhvillimi i shfletuesve të Uebit të cilët janë programet më të njohur dhe më të përdorur nga përdoruesit. 
  • Zhvillimi i librarive që kërkojnë shpejtësi të lartë. Shumë librari shkencore që përdoren nga gjuhë të tjera si Piton janë të shkruara në gjuhën C++ për të ofruar shpejtësi të lartë të llogaritjeve shkencore. 
  • Zhvillimi i programeve grafike që kërkojnë përpunim të shpejtë të imazheve. Në këtë kategori hyjnë dhe lojrat grafike të cilat kanë marë një përhapje të madhe në ditët e sotme. 
  • Zhvillimi i sistemeve të shpërndara që përdorin sisteme skedarësh të shkallëzueshëm dhe me ekzekutim paralel. 
  • Zhvillimi i sistemeve të menaxhimit të bazave të të dhënave si Postgres dhe MySQL.

Më poshtë paraqitet kodi në C++ i programit të famshëm “Hello, World!” i shkruar nga Bjarnë Straustrup:

#include <iostream>
int main()
{
std::cout << "Hello, world!\n";
}

Referenca

  1. https://en.wikipedia.org/wiki/C_(programming_language)
  2. https://www.javatpoint.com/cpp-features
  3. https://en.wikipedia.org/wiki/C%2B%2B