C++ (արտասանվում է ինչպես սի փլաս փլաս ˌsiːˌplʌsˈplʌs) ընդհանուր նշանակության ծրագրավորման լեզու,
որը համարվում է «միջին-մակարդակի» լեզու, քանի որ թույլատրում է ինչպես
ցածր մակարդակի, այնպես էլ բարձր մակարդակի ծրագրավորում։ Այն ստատիկորեն
տիպավորվող, բազմապիսի մոտեցումներ թույլատրող (multi-paradigm), սովորաբար
կազմակվող (կոմպիլյացվող) լեզու է։[3][4]
Բյորն Ստրաուստրուպը, ստեղծեց C++ լեզուն Bell Labs-ում 1979-ին, որպես C ծրագրավորման լեզվի բարելավում և անվանեց այն "C with Classes"։ 1983-ին այն վերանվանվեց C++ -ի։
C++ -ը ամենատարածված ծրագրավորման լեզուներից է։ Կիրառման ոլորտներից
են համակարգային ծրագրավորումը, կիրառական ծրագրերի ստեղծումը, ֆիզիկական
սարքավորումների՝ օպերացիոն համակարգի հետ կապի ապահովման ծրագրերի
ստեղծումը, բարձր արդյունավետությամբ աշխատող սերվեր և օգտագործող ծրագրերի
ստեղծումը, ինչպես նաև, ներդրված ծրագրերի և համակարգչային խաղերի
ստեղծումը։ Պատմությունը:
Ստեղծումը
Լեզուն առաջացել է 1980-ական թվականների սկզբին, երբ Bell Labs ընկերության աշխատակից Բյորն Ստրաուստրուպը սեփական կարիքների համար մի շարք կատարելագործումներ մտածեց C ծրագրավորման լեզվի համար։[6]
Երբ 1970-ականների վերջում Ստրաուստրուպը սկսեց աշխատել Bell Labs-ում
հաջորդականությունների տեսության առաջադրանքների վրա (հեռախոսների
մոդելավորման հավելվածում), նա բացահայտեց, որ այդ ժամանակ գոյույուն
ունեցող մոդելավորման լեզուների կիրառման փորձերը արդյունավետ չէին, իսկ
բարձր արդյունավետություն ունեցող մեքենայական լեզուների կիրառումը
չափազանց բարդ է՝ նրանց սահմանափակ արտահայտչականության պատճառով։ Այսպես, Սիմուլա (ծրագրավորման լեզու)
լեզուն ունի այնպիսի հնարավորություն, որ մեծ ծրագրային ապահովման մշակման
ժամանակ բավականին օգտակար կլինի, սակայն այն շատ դանդաղ է աշխատում։ Իսկ BCPL
լեզուն բավականին արագ է աշխատում, սակայն շատ մոտ է ցածր մակարդակի
լեզուներին և չի կարող կիրառվել մեծ ծրագրային ապահովում մշակման ժամանակ։
Հիշելով ատենախոսության իր փորձը, Ստրաուստրուպը որոշեց ավելացնել C
լեզվի (որի իրավահաջորդը BCPL-ն է) հնարավորությունները, մատչելի Սիմպուլա
լեզվով։ C լեզուն, լինելով հիմնարար լեզուն UNIX
համակարգի, որի վրա աշխատել են Bell համակարգիչները, արագ են,
բազմաֆունկցիոնալ և շարժական։ Ստրաուստրուպը ավելացրել էր հնարավորություն
տալիս աշխատել դասերով և օբյեկտներով։ Արդյունքում գործնական խնդիրները
մոդելավորման դարձավ մատչելի լուծելու ինչպես ժամանակի տեսանկյունից
մշակման (շնորհիվ օգտագործման Սիմպուլա-նման դասերի), այնպես էլ ժամանակի
տեսանկյունից հաշվարկներով (շնորհիվ արագ աշխատող C-ի)։ Առաջին հերթին C է
եղել ավելացվել դասեր ( ինկափսուլացիայով),
դասերի ժառանգումը, խիստ ձևերի ստուգում, inline-գործառույթները և default
փաստարկները։ Վաղ լեզվի տարբերակը, սկզբնապես անվանվել էր «C with
classes» («Սի դասերով»), դարձավ հարսանելի 1980 թվականից։
Մշակելով C դասով, Ստրաուստրուպ գրեց cfront ծրագիրը — տրանսյլատոր, վերամշակման հենակետային կոդը C-ն դասով
հենակետային կոդում պարզապես C։ Որը թույլ տվեց աշխատել լեզվի հետ և
օգտագործել այն պրակտիկայում, կիրառելով նախապես գոյություն ունեցող UNIX-ի
ենթակառուցվածքը C-ն մշակելու համար։ Նոր լեզուն, անսպասելի էր հեղինակի
համար, ձեռք բերեց մեծ տարածվածություն իր գործընկերների շրջանում և շուտով
Ստրաուստրուպը չի կարող անձամբ աջակցել դրան, պատասխանեց մոտ հազար հարցի։
1983
թվականին լեզվում ավելացվեց նոր հնարավորություններ, ինչպիսիք են. վիրտուալ
ֆունկցիաները, ֆունկցիաների և օպերատորների գերբեռնվածությունը,
հղումները, հաստատունները, օգտվողի վերահսկողությունը ազատ հիշողության
կառավարման, բարելավվել էր ձևի ստուգումը և նոր ոճ (// ) մեկնբանություններին։ Ստացված լեզուն արդեն դադարեց պարզապես լինել լրացվաց տարբերակ դասական C-ին և վերանվանվեց C-ն դասերով ից «C++»։ Առաջին կոմերցիոն թողարկունը եղել է 1985 թվականի հոկտեմբերին։
Սկզբում օֆիցիալ լեզվի ստանդարտացման զարգացումը հիմնականում եղել է
Ստրաուստրուպի ուժերով ի պատասխան ծրագրավորման հասարակությանը։ Ստանդարտ
լեզվի ֆունկցիաների նկարագրություններ, գրել է Ստրաուստրուպը C++-ի
աշխատանքները հրապարակելուց (լեզվի նկարագրությունը, հղումը ուղեցույցը և
այլն)։ Միայն 1998 թվականին վավերացվեց C++ լեզվի միջազգային ստանդարտը՝ ISO/IEC 14882։1998 «Standard for the C++ Programming Language»; հետո 2003 թվականին ստանդարտի տեխնիկական ուղղումները կատարելուց — ստեղծվեց ստանդարտի հաջորդ տարբերակը — ISO/IEC 14882։2003։[7]
Ստեղծման նպատակը
C++ լեզուն ստեղծելիս Բյորն Ստրասուստրուպն ուզում էր անել հետևյալը.[8]
- Ստանալ ունիվերսալ լեզու իր ստատիկ տիպերով, որը կլինի էֆետկտիվ և C լեզվի հետ համատեղելի
- Անմիջականորեն և բոլոր հնարավոր տարբերակով ապահովել ծրագրավորման բազմաթիվ ոճեր, այդ թվում պրոցեդուրային ծրագրավորումը, տվյալների աբստրակցիան, օբյեկտ կողմնորոշված ծրագրավորումը և ջեներիկ ծրագրավորումը
- Ծրագրավորողին տալ ազատ ընտրության իրավունք, եթե անգամ ծրագրավորողը սխալ գործի
- Մաքսիմում կերպով ապահովել C լեզվի հետ համատեղելիությունը՝ դրանով իսկ ապահովելով հարկ եղած դեպքում C լեզվի անցմանը
- Խուսափել C և C++ լեզուների միջև եղած տարաձայնություններից. ցանկացած
կոնստրուկցիա, որ կա երկու լեզուներում պետք է նծանակի միևնույն բանը և
ունենա միևնույն ծրագրային վարքագիծը
- Խուսափել ոչ ունիվերսալ կամ ծրագրավորման հարթակների ընտրության հետ կապված հատկություններից
- «Չվճարել նրա համար, ինչը չի օգտագործվում». ոչ մի շրագրավորման լեզու
չպետք է գցի ծրագիրն աշխատելու արագությունը ոչ օգտագործված ծրագրային կոդի
պատճառով
- Չպահանջել շատ բարդ ծրագրավորման միջավայր
|