C++ ծրագրավորման լեզվի կիրառման ոլորտները

Ծրագրավորման լեզուներ

Lia
Picsart Academy
6 min readMay 27, 2022

--

C++-ը բարձր մակարդակի օբյեկտ կողմնորոշված ծրագրավորման լեզու է, որն օգնում է ծրագրավորողներին գրել արագ աշխատող և շարժական/դյուրակիր (portable) ծրագրեր։

Շարժական կամ դյուրակիր է համարվում այն ծրագիրը, որը կարելի է օգտագործել ոչ միայն այն օպերացիոն համակարգում, որտեղ վերջինս գրվել է, այլ նաև այլ համակարգերում` առանց վերամշակման անհրաժեշտության:

Portability-ն պետք է լինի ծրագրավորողի կողմից իրականացվող յուրաքանչյուր աշխատանքի առաջնային նպատակը, քանի որ միայն այդ դեպքում Ձեր կողմից գրված ծրագիրը անխափան կաշխատի ցանկացած այլ միջավայրում։
Ընդհանուր առմամբ, ծրագրերը, որոնք գրվում են համաձայն ծրագրային ստանդարտ ինտերֆեյսի կանոնների, ինչպես C լեզվի X / Open UNIX 95 ինտերֆեյսի դեպքում է, շարժական են։ Միակ բանը, որը մնում է անել, ծրագիրը նոր միջավայրում կոմպիլացնելն է։
Երբեմն, այն ծրագրավորողները, որոնք ծրագրեր են գրում՝ օգտվելով ծրագրային ստանդարտ ինտերֆեյսի կանոններից, օգտագործում են օպերացիոն համակարգի ընդլայնումներ այնպիսի դեպքերի համար, որոնք կարող են չլինել նոր համակարգում։ Վերոհիշյալ ընդլայնումների օգտագործումը պետք է նոր օպերացիոն համակարգում հեռացվի կամ փոխարինվի առկա նմանատիպ ֆունկցիաներով։

Ծրագրավորման լեզուները բավականին շատ են, որոշները ժամանակի ընթացքում դադարում են օգտագործվել կամ «մահանում» են, իսկ որոշներն ապրում են շատ երկար՝ շարունակելով փոփոխվել և էլ ավելի զարգանալ։

Լեզուն չի դադարի գործածվել, եթե պիտանի լինի շարունակական օգտագործման համար, իսկ այդպիսի ծրագրային լեզուն պետք է լինի ավելի արդյունավետ, քան մյուս լեզուները։

Լեզուներից որևիցե մեկում մասնագիտանալ որոշելուց առաջ ցանկալի է կենտրոնանալ այն բանի վրա, թե ինչ ոլորտի համար է գրվելու ծրագիրը, ինչ նպատակի է այն ծառայելու և որքանով են տվյալ լեզվի հնարավորությունները թույլ տալիս բարձր կատարողականություն և արդյունավետություն ունեցող ծրագիր ստեղծել։

Իհարկե, լինում են նաև լեզվի ընտրության այլ պատճառներ։ Հաճախ կարելի է հանդիպել այնպիսի IT ընկերությունների, որտեղ ծրագրավորողների մեծամասնությունը տիրապետում է հենց Java լեզվին և աշխատում հենց Java-ով այն պարագայում, երբ մեկ այլ լեզվի ընտրությունը առավել նպատակահարմար կարող էր լինել իրենց պրոդուկտի համար։ Այստեղ, իհարկե, կարևոր դեր է խաղում այս կամ այն լեզվին տիրապետող ծրագրավորողների հասանելությունը, և թե որքան հեշտ է հասկանալ և սովորել տվյալ լեզուն։
Բարդությունից, որպես կանոն, բոլորը խուսափում են։
Լեզվի ընտրության հարցում շատերն առաջնորդվում են շուկայում վերջինիս ունեցած արժեքով, այսինքն՝ տարբեր լեզուների տիրապետող ծրագրավորողներ վարձատրվում են տարբեր գնային շեմերով։

Այնուամենայնիվ, լեզվի ընտրության հարցում լավագույն մոտեցումը ծրագրի առանձնահատկությունները հաշվի առնելն ու դրանով իսկ առաջնորդվելն է։

Այս հոդվածում կանգ կառնենք հենց այս կետի վրա։

Պատահում են այնպիսի իրավիճակներ, երբ լեզուների ընտրության տարբերակներ ի սկզբանե չեն էլ դիտարկվում։
Օրինակ, եթե ինչ-որ պարագայում արտադրողականության փաստը մեծ դեր է խաղում և յուրաքանչյուր միլիվայրկյանը կարող է որոշիչ դեր ունենալ, ապա միանգամից մի կողմ են դրվում սկրիպտային լեզուները՝ հարցականի տակ դնելով նույնիսկ Java և C# լեզուների ընտրությունը։
Այս դեպքում լավագույն տարբերակը C++-ն է։ C++-ից ավելի արագ C-ն է և assembler-ը, բայց մեր օրերում դրանցով աշխատելն այնքան էլ իրական չէ։
C++ լեզվին գերազանց տիրապետող մասնագետները, ցավոք սրտի, բավականին քիչ են, քանի որ այս լեզվի ուսուցումը ենթադրում է յուրացման բարդ ընթացք, մինչդեռ արագ, հեշտ ու բարձր վարձատրվող գործով զբաղվելն առավել հեշտ է և հասանելի։
C++-ով ծրագիր գրելը բավականին ժամանակատար է և մեծ ուշադրություն, գիտելիքների պաշար ու կենտրոնացում է պահանջում։ Քանի որ նման մասնագետները քանակապես քիչ են, իսկ պահանջարկը` բարձր, հետևաբար բարձր է նաև վարձավճարը։

C++ով գրված ծրագրերն ունեն, թերևս, մեկ անհանգստացնող խնդիր. դրանք այնքան էլ ապահով չեն։ Այսինքն, բարդ է ոչ միայն կոդի կազմումը, այլ նաև հիշողության հետ աշխատանքը, որը կօգներ խուսափել memory-leak-ից և դրանից բխող խնդիրներից։

Մյուս լեզուներում նման վտանգ նույնպես կա, սակայն՝ առավել քիչ հավանականությամբ։
C++-ի առավելություններից մեկն այն է, որ դրանով գրված ծրագրերը ավելի քիչ հիշողություն և CPU-ի աշխատանք են պահանջում, քան սկրիպտային լեզուներով գրված ծրագրերը,կամ, օրինակ, C# կամ Java լեզուներով գրված ծրագրերը։

Պնդել, թե այս փաստը կարող է որոշիչ դեր խաղալ լեզվի ընտրության հարցում, այնքան էլ ճիշտ չէ, քանի որ մեր օրերում հիշողությունը և CPU-ն այնքան էլ թանկարժեք չեն, և icloud-ը մեզ հնարավորություն է տալիս հասանելի գնով ձեռք բերել հսկայական չափի հիշողություն։

C++-ի կիրառումը ավելի նպատակահարմար է առավել փոքր ներկառուցված պլատաներով ու միկրոպրոցեսորներով պրոդուկտների հետ աշխատանքի դեպքում։ Այն հրաշալի ընտրություն է այն ժամանակ, երբ ռեսուրսները սահմանափակ են և կա մեծ արագության (real time) ապահովման անհրաժեշտություն։
Նման դեպքերի թիվը աստիճանաբար կրճատվում է, սակայն դրանք դեռևս գոյություն ունեն և պահանջում են լուծումներ՝ ծրագրավորման համապատսխան գործիքակազմով։
Եթե չկան հատուկ պահանջներ ծրագրի մասով, ապա ավելի հարմար է աշխատել ժամանակակից այլ լեզուներով, որտեղ ծրագրավորողի գործը առավել պարզեցված է։

C++ -ի կիրառման ոլորտները

Մի փոքր խոսենք այն հավելվածների մասին, որտեղ օգտագործվել է հենց C++ ծրագրավորման լեզուն։

Լինելով սարքային ապահովմանը (hardware) շատ մոտ` լեզուն կարող է հեշտությամբ օգտվել տարբեր ռեսուրսներից և ապահովել պրոցեսային ծրագրավորում (procedural programming) ՝ CPU-ից ակտիվորեն օգտվող ֆունկցիաներով։ Այն նաև լայնորեն կիրառվում է 3D խաղերի ծրագրավորման մեջ, ինչպես նաև՝ ապահովում բազմաշերտ networking-ով։

Այս բոլոր առավելությունները C++-ը դարձնում են անփոխարինելի` խաղերի ծրագրավորման համար։

Ահա խաղերի ցանկ, որոնք ծրագրավորելիս օգտագործվել է C++ ծրագարվորման լեզուն։

  • Doom III engine, Counter-Strike, Sierra On-line: Birthright, Hellfire, Soccer Professional, Bullrider I & II, Trophy Bear, Kings Quest, Antara, Hoyle Card games suite, SWAT, Blizzard: StarCraft, StarCraft: Brood War,
  • Diablo I, Diablo II: Lord of Destruction, Warcraft III, World of Warcraft, Starfleet Command, Invictus, PBS’s Heritage: Civilization and therefore the Jews, Master of Orion III, CS-XII, MapleStory.

Adobe համակարգի գրեթե բոլոր հավելվածները՝ ներառյալ Illustrator, Photoshop և մյուս հավելումները, նախագծված են են C++-ով։
Իսկ MicrosoftWin Amp Media Player հանրահայտ ծրագրային ապահովումը, որն արդեն տասնամյակներ շարունակ ապահովում է մեր բոլոր աուդիո/վիդեո հնարավորությունների իրականացումը, նույնպես, նախագծված է C++-ով։

C++-ը կիրառվում է նաև տվյալների բազայի կառավարման ծրագրակազմ գրելիս։ Ամենահայտնի տվյալների բազաներից են MYSQL և Postgres-ը։
MySQL-ը, օրինակ, մշակվում և աջակցվում է Oracle Corporation-ի կողմից, որը ձեռք է բերել ապրանքային նշանի իրավունքները Sun Microsystems-ի հետ համատեղ, որն էլ, իր հերթին, նախկինում ձեռք էր բերել շվեդական MySQL AB ընկերությունը:
Այն նույնպես գրված է C++ ծրագրավորման լեզվով և լայնորեն կիրառվում է ամենատարբեր ընկերություններում։

Ահա ևս մի քանի տվյալների բազաներ, որոնք գրվել են C++ -ով։

  • Oracle database
  • MySQL
  • IBM DB2
  • Microsoft SQL Server
  • IBM Informix
  • SAP DB/MaxDB
  • MongoDB

C++ -ի խիստ տիպավորված և արագ աշխատող լեզու լինելու փաստը այն անփոխարինելի է դարձնում օպերացիոն համակարգերի նախագծման համար: Չափազանցություն չի լինի, եթե համարձակվենք ասել, որ բոլոր օպերացիոն համակարգերը գրված են C++-ով։

Փաստող օրինակներ են՝ Windows 95, 98, 2000, XP, Vista, Windows 7, Windows 8, Apple Mac OS X, Symbian OS, and Be-OS, Google Chrome OS, RIM BlackBerry OS 4. x, Apple iPhone, iPod Touch և iPad OS-ը։

Ահա ևս մի քանի անուն՝

  • Microsoft Internet Explorer
  • Google Chrome
  • Mozilla Firefox
  • Safari
  • Netscape Navigator
  • Opera and Opera Mini

C ++ -ը օգտակար է նաև այնպիսի ծրագրերի մշակման համար, որոնք պահանջում են պատկերի բարձրորակ մշակում և իրական ժամանակի ֆիզիկական սիմուլյացիաներ. նման օրինակ են բջջային-սենսորային ծրագրերը, որոնք պահանջում են բարձր կատարողականություն և արագություն:
Maya 3D ծրագրակազմը, օրինակ, մշակված է C ++ -ով և օգտագործվում է անիմացիայի, վիրտուալ իրականության, եռաչափ գրաֆիկայի և միջավայրերի ստեղծման համար:

C++ լեզուն տարածված է նաև բանկային ծրագրերում, քանի որ դրանք պահանջում են համաժամանակություն և բարձր կատարողականություն: Հայտնի բանկային ծրագիր Infosys Finacle-ը օգտագործում է C++-ը որպես Backend ծրագրավորման լեզու։

Cloud պահեստավորման համակարգերը, որոնք լայնորեն կիրառվում են մեր օրերում, աշխատում են անմիջապես «սարքի» հետ, ուստի, նմանատիպ համակարգերի համար ևսC++-ը ճիշտ ընտրություն է։

Օրինակ, Bloomberg-ը բաշխված RDBMS ծրագիր է, որն օգտագործվում է ներդրողներին իրական ժամանակի ֆինանսական տեղեկատվության և նորությունների ճշգրիտ տրամադրման համար։ Մինչ BloombergRDBMS-ը գրված է C լեզվով, դրա զարգացման միջավայրը և գրադարանների հավաքածուն գրված են C++ -ով:
Մի շարք բարձր մակարդակի լեզուների կոմպիլյատորներ գրված են հենց C կամ C++ լեզուներով։ Պատճառն այն է, որ և՛ C-ն, և՛ C++-ը ավելի մոտ են սարքին և ունակ են ծրագրավորել ու շահարկել հիմքում ընկած սարքային ռեսուրսները:

C++ -ի կիրառման հաջորդ բնագավառը բազմաթիվ ձեռնարկությունների ծրագրային ապահովումներն են, ինչպես նաև՝ առաջադեմ ծրագրերի մշակումները, ինչպես օրինակ՝ թռիչքների մոդելավորումը և ռադարների մշակումը:

HP-ի որոշ հավելվածներ ևս գրված են C++ ծրագրավորման լեզվով։

  • C, C++, Fortran90 կոմպիլյատորներ և կապակցման խմբագրիչ նոր HP IA64 պլատֆորմի համար
  • SAM (HP’s system management utility)
  • Որոշ networking գրադարաններ HP-UX-ում
  • Microsoft SQL Server
  • Java VM core
  • Openview-ի որոշ մասեր

Թերևս նման տպավորիչ թվարկումներից հետո տրամաբանական կլիներ ուղղորդել ընթերցողին դեպի C++ լեզվի ընտրություն, սակայն, ինչպես նշել էինք հոդվածի սկզբում, լեզվի ընտրությունը պետք է պայմանավորված լինի մի շարք հանգամանքներով, որոնք որոշել կարող է միայն հենց ինքը՝ ծրագրավորողը։

Կարևոր է միայն մի բան, որպեսզի ինչ էլ ընտրելիս լինեք, նվիրվեք դրա ուսումնասիրմանն ամբողջովին։

--

--