Gjuhët C/C++: Standarde dhe Zbatime

Versione të gjuhëve C dhe C++ përgjatë viteve

Në figurën më sipër paraqiten të përvijuar në kohë versionet kryesorë të gjuhëve C dhe C++. Versioni i parë i gjuhës C (megjithëse jo i standardizuar) është ai i vititi 1972 kur gjuha C u krijua nga Denis Riçi. Ky version i gjuhës C u projektuar posaçërisht për rishkrimin e sistemit Unix që kodi i këtij të fundit të ishte i mbartshëm në kompjutera të modeleve të ndryshëm. Version tjetër i rëndësishëm por përsëri jo zyrtarisht standard i gjuhës C ishte ai i vitit 1978 i quajtur C-ja K&R (Kërnigen dhe Riçi) i publikuar në librin “Gjuha e Programimit C” me autorë Brajan Kërnigen dhe Denis Riçi. Ky version u përhap shumë në mjediset e programuesve dhe mori popullaritet e përdorim të gjerë (u kthye në standard de fakto), edhe pse vazhdonte të ishte i lidhur me zhvillimin e sitemit Unix.

Përpjekjet e para për standardizimin e gjuhës C nisën në vitin 1983 kur ANSI (American National Standards Institute, Instituti Amerikan i Standardeve Kombëtare) formoi komitetin X3J11 që të hartonte specifikimet e saj. Specifikimet standarde te C-së u bazuan te zbatimi i saj në sistemin Unix. Gjithësesi, pjesa jo e mbartshme e librarisë së gjuhës C në sistemin Unix ju kalua grupit të punës së IEEE-së dhe u kthey në bazën e standardit POSIX të vitit 1988. Në vitin 1989 u konfirmua standardi i parë i quajtur X3.159–1989 “Programming Language C”. Ky version i gjuhës C njihet botërisht si ANSI C ose edhe C89. Një vit më vonë standardi ANSI C u huazua dhe përshtat nga organizata ndërkombëtare e standardizimeve e cila publikoi standardin ISO/IEC 9899:1900. Ky standard i gjuhës C njihet ndryshe si ISO C ose C90. 

Standardet C89 dhe C90 mbështeten nga kompilarotët e sotëm pa ndonjë kufizim apo supozim mbi harduerin ku do të përdoret. Në raste të veçanta kur kodi duhet të kompilohet nga kompilatorë të bazuar te versioni K&R, mund të përdoret makroja __STDC__ për specifikimin e pjesëve K&R dhe shmangien e përdorimit të atyre kompilatorëve në pjesët që përmbajnë elemente të versioneve të mëvonshme të panjohur për ta. Pas standardizimeve ANSI/ISO, specifikimet e gjuhës C qëndruan pak a shumë statike për shumë vite. Si standarde të tjera të rëndësishme njihen C99 (emri i plotë: ISO/IEC 9899:1999) i vitit 1999 dhe C11 i vitit 2011 i cili përmirësoi më tej përputhjen me gjuhën C++.

Vetë gjuha C++ u krijua nga Bjarnë Straustrup në vitin 1979 dhe në atë kohë quhej “C me klasa”. Varianti i vitit 1983 u emërtua C++ dhe mund të konsiderohet versioni i parë i plotë, megjithëse jo i standardizuar. Puna për standardizimin e gjuhës C++ nisi në vitet 90 pasi ishin shtuar në të veçoritë themelore dhe të avancuara si trashëgimia e shumëfishtë, klasat abstrakte, etj. Standardi i parë ishte ai i vitit 1998 i quajtur ISO/IEC 14882:1998. Ky version i gjuhës C++ njihet si C++98 dhe njihet për ofrimin e modeleve të gatshme të kodimit si dhe mbështetjen e të dhënave të tipit gërmëvarg. Versioni pasues më i afërt ishte ai i vitit 2003 i njohur si ISO/IEC 14882:2003i cili më së shumti korrigjonte problemet e shfaqura te versioni C++98. 

Standardi tjetër i rëndësishëm ishte ai i vitit 2011 i njohur si C++11 i cili shtonte funksionet lambda dhe elemente të tjera. Ky version pësoi disa përmirësime dhe shtesa (funksionet lambda abstrakt) në vitin 2014. Versioni më i fundit i standardizuar është C++17 i publikuar dy vite më parë. Ndryshe nga gjuha C që është më e thjeshtë, gjuha C++ konsiderohet si një gjuhë komplekse dhe e vështirë. Kritikat e ndryshme ndaj saj kanë qenë të përqëndruara pikërisht në këtë pikë. Kanë qenë të shumtë ata që i kanë konsideruar konstruktet e gjuhës C++ si të tepërta dhe praktikisht jo të përdorshme. Pavarësisht kësaj, C++ ka gjetur përdorim të gjerë në shumë zbatime, njësoj si gjuha C. 

Ndër mjediset kryesore të zhvillimit (kompilatori, lidhësi dhe libraritë bazë) për gjuhët C dhe C++, më i njohuri është ndoshta ai i sistemeve GNU/Linux që përfshin kompilatorin gcc dhe libraritë me kodburim të hapur (licencë GPL). Ky mjedis i C-së ka gjetur përshtatje dhe përdorim edhe në sisteme të tjera operative të familjes Unix dhe mund të përdoret edhe për kode të sistemeve Android dhe iOS të cilët gjenden te telefonat e mençur. LLVM është një tjetër kompilator i rëndësishëm i publikuar me licensë të tipit BSD dhe që përdoret gjerësisht në sistemet MacOS. Ky kompilator u konceptua fillimisht për gjuhët C dhe C++ dhe më vonë përfshiu dhe gjuhë të tjera si C#. Objective-C, Ruby, Swift, etj. Përveç dy zbatimeve të mësipërme me kodburim të hapur, nuk mund të lihet pa u përmendur dhe kompilatori C/C++ që ofrohet në paketën Visual Studio (e fundit e vitit 2017) i cili është i shpërndarë me licensë pronësore të kompanisë Microsoft. Varianti komunitar i kësaj pakete shpërndahet falas dhe mund të përdoret në sistemet operative të familjes Windows.

Referenca

  1. https://en.wikipedia.org/wiki/C_(programming_language)
  2. https://en.wikipedia.org/wiki/C%2B%2B