6-mavzu: C++ dasturlash tili bilan tanishish tayanch atamalar


Download 115.83 Kb.
bet1/7
Sana21.06.2023
Hajmi115.83 Kb.
#1641089
  1   2   3   4   5   6   7
Bog'liq
2G.T.Aqbilek



Matematika va informatika yo‘nalishi talabalari
Turemuratova Aqbilek va Aralbekova Aydana ning
Zamonaviy dasturlash tillari fanidan tayyorlagan ishi

6-MAVZU: C++ DASTURLASH TILI BILAN TANISHISH

Tayanch atamalar: C++ dasturlash tilining alifbosi. O‘zgaruvchilar va o‘zgarmaslar. Identifikatorlar. Ma’lumotlar tipi. O‘zgaruvchilami e’lon qilish. O‘zgaruvchilami initsializatsiya qilish. Izohlar. Standart funksiyalar va algеbraik ifodalar. Chiqarish va kiritish operatori.
C++ dasturlash tilining tarixi
C++ ( ≪s iː p l ʌ s p l ʌ s ≫, talaffuzi “C plus plus”)— 1980 yilning boshida daniyalik kompyuter olimi Bjarne Stroustrup tomonidan yaratilgan yuqori darajali , umumiy maqsadli dasturlash tili . Birinchi marta 1985 yilda C dasturlash tilining kengaytmasi sifatida chiqarilgan , vaqt o'tishi bilan u sezilarli darajada kengaydi. 1979 yilda daniyalik kompyuter olimi Bjarne Stroustrup ish boshladi. Yangi tilni yaratish motivi Stroustrupning doktorlik dissertatsiyasi uchun dasturlash tajribasidan kelib chiqqan. Stroustrup Simula katta dasturiy taʼminotni ishlab chiqish uchun juda foydali xususiyatlarga ega ekanligini aniqladi, lekin til amaliy foydalanish uchun juda sekin, BCPL esa tez, lekin katta dasturiy ta'minotni ishlab chiqish uchun juda past darajada edi.Stroustrup AT&T Bell Laboratoriyasida ishlay boshlaganida, u UNIX yadrosini taqsimlangan hisoblashlarga nisbatan tahlil qilish muammosiga duch keldi. C umumiy maqsadli, tezkor, portativ va keng qoʻllanilganligi uchun tanlangan. C va Simula ta'siri bilan bir qatorda, boshqa tillar ham ushbu yangi tilga ta'sir ko'rsatdi, jumladan ALGOL 68 , Ada , CLU va ML . Dastlab, Stroustrupning "C sinflar bilan" C kompilyatoriga Cpre funksiyalarini qo'shdi, jumladan sinflar , olingan sinflar , kuchli yozish va standart argumentlar .1982 yilda Stroustrup sinflar bilan C ning davomchisini ishlab chiqishni boshladi, u bir nechta boshqa nomlardan o'tib, uni "C++" (C da o'sish operatori ) deb nomladi. Virtual funksiyalar , funksiya nomi va operatorning haddan tashqari yuklanishi , havolalar , o‘zgaruvchilar, xavfsiz turdagi boʻsh xotirani ajratish, yaxshilangan turdagi tekshirish va ikkita oldinga chiziqli BCPL uslubidagi bir qatorli izohlar kabi yangi funksiyalar qoʻshildi . Bundan tashqari, Stroustrup C++, Cfront uchun yangi, mustaqil kompilyatorni ishlab chiqdi .1984 yilda Stroustrup birinchi oqim kiritish/chiqish kutubxonasini joriy qildi. Nomlangan chiqish funktsiyasidan ko'ra chiqish operatorini ta'minlash g'oyasini Dag Makilroy  taklif qilgan.1985 yilda C++ dasturlash tilining birinchi nashri chiqdi, bu til uchun aniq ma'lumotnoma bo'ldi, chunki hali rasmiy standart mavjud emas edi. C++ ning birinchi tijorat ilovasi oʻsha yilning oktyabr oyida chiqarilgan.1989-yilda C++ 2.0, soʻngra 1991-yilda C++ dasturlash tilining yangilangan ikkinchi nashri chiqdi. 2.0-dagi yangi xususiyatlar bir nechta merosni, mavhum sinflarni, statik aʼzo funksiyalarini, o‘zgarmas aʼzo funksiyalarini va himoyalangan aʼzolarni oʻz ichiga oladi. 1990 yilda izohlangan C++ uchun qo‘llanma nashr etildi. Bu ish kelajakdagi standart uchun asos bo'ldi. Keyinchalik xususiyat qo'shimchalari shablonlarni , istisnolarni nomlash bo'shliqlarini, yangi translatsiyalarni va Boolean turini o'z ichiga oladi. 1998 yilda tilni standartlashtirgan C++98, 2003 yilda esa kichik yangilanish C++03 chiqarildi.
C++ 98 dan keyin C++ nisbatan sekin rivojlandi, 2011 yilda C++ 11 standarti chiqarildi, u ko'plab yangi xususiyatlarni qo'shdi, standart kutubxonani yanada kengaytirdi va C++ dasturchilariga ko'proq imkoniyatlar taqdim etdi. 2014 yil dekabr oyida chiqarilgan kichik C++14 yangilanishidan so'ng C++ 17 da turli xil yangi qo'shimchalar kiritildi . 2020-yil fevral oyida yakunlanganidan soʻng C++ 20 standarti loyihasi 2020-yil 4-sentabrda tasdiqlangan va 2020-yil 15-dekabrda rasman chop etilgan. 2018-yil 3-yanvarda Stroustrup muhandislik bo‘yicha Charlz Stark Draper mukofotining “C++ dasturlash tilini kontseptuallashtirish va rivojlantirish uchun” 2018-yilgi g‘olibi deb e’lon qilindi.
2022 yil dekabr holatiga ko'ra C++ TIOBE indeksida uchinchi o'rinni egallab , indeks tarixida birinchi marta Javadan o'zib ketdi. Python va C dan keyin 3-o'rinni egallaydi .
C++ ning butun hayoti davomida uning rivojlanishi va evolyutsiyasi bir qator tamoyillarga amal qilgan:

  1. Bu dolzarb muammolarga asoslangan bo'lishi kerak va uning xususiyatlari haqiqiy dunyo dasturlarida darhol foydali bo'lishi kerak.

  2. Har bir xususiyat amalga oshirilishi kerak .

  3. Dasturchilar o'zlarining dasturlash uslublarini tanlashda erkin bo'lishlari kerak va bu uslub C++ tomonidan to'liq qo'llab-quvvatlanishi kerak.

  4. Foydali xususiyatga ruxsat berish C++ dan har qanday noto'g'ri foydalanishning oldini olishdan ko'ra muhimroqdir.

  5. U dasturlarni alohida, aniq belgilangan qismlarga ajratish va alohida ishlab chiqilgan qismlarni birlashtirish uchun imkoniyatlarni ta'minlashi kerak.

  6. Tizimning aniq buzilishi yo'q.




  1. Foydalanuvchi tomonidan yaratilgan turlar o'rnatilgan turlar bilan bir xil qo'llab-quvvatlash va ishlashga ega bo'lishi kerak.

  2. Foydalanilmayotgan xususiyatlar yaratilgan bajariladigan fayllarga salbiy ta'sir ko'rsatmasligi kerak.

  3. C++ ostida hech qanday til bo'lmasligi kerak .




  1. C++ o'zining alohida va mos kelmaydigan dasturlash muhitini rivojlantirishdan ko'ra, boshqa mavjud dasturlash tillari bilan birga ishlashi kerak .

  2. Agar dasturchining maqsadi noma'lum bo'lsa, dasturchiga qo'lda boshqarishni ta'minlash orqali uni belgilashga ruxsat bering.

C++ JTC1/SC22/WG21 deb nomlanuvchi ISO ishchi guruhi tomonidan standartlashtirilgan . Hozirgacha u C++ standartining oltita reviziyasini nashr etdi va hozirda navbatdagi C++ 23 versiyasi ustida ishlamoqda . 1998 yilda ISO ishchi guruhi C++ tilini birinchi marta ISO/IEC 14882:1998 sifatida standartlashtirdi , bu norasmiy ravishda C++98 nomi bilan tanilgan . 2003 yilda u ISO/IEC 14882:2003 deb nomlangan C++ standartining yangi versiyasini nashr etdi , bu esa C++ 98 da aniqlangan muammolarni bartaraf etdi.
Standartning navbatdagi yirik tahriri norasmiy ravishda "C++0x" deb nomlandi, biroq u 2011 yilgacha chiqarilmadi. C++11 (14882:2011) ham asosiy tilga, ham standartga koʻplab qoʻshimchalarni oʻz ichiga olgan.2014 yilda C++ 14 (shuningdek, C++ 1y nomi bilan ham tanilgan) C++ 11 ning kichik kengaytmasi sifatida chiqarildi , asosan xatolarni tuzatish va kichik yaxshilanishlarni o'z ichiga oladi. 2014-yil avgust oyi oʻrtalarida Xalqaro standart ovoz berish protseduralari loyihasi yakunlangan. C++ 14 dan soʻng norasmiy ravishda C++ 1z nomi bilan tanilgan C++ 17 ning yirik reviziyasi ISO C++ qoʻmitasi tomonidan 2017-yil iyul oʻrtalarida yakunlandi va 2017-yil dekabrida tasdiqlandi va chop etildi.
Standartlashtirish jarayonining bir qismi sifatida ISO shuningdek, texnik hisobotlar va spetsifikatsiyalarni nashr etadi :

  • ISO/IEC TR 18015:2006 oʻrnatilgan tizimlarda C++ dan foydalanish hamda C++ tili va kutubxona xususiyatlarining ishlashga taʼsiri haqida;

  • ISO/IEC TR 19768:2007 asosan C++ 11 ga integratsiyalangan kutubxona kengaytmalari boʻyicha;

  • ISO/IEC TR 29124:2010 maxsus matematik funktsiyalar bo'yicha, C++ 17 ga integratsiyalashgan.

  • ISO/IEC TR 24733:2011  oʻnlik suzuvchi nuqtali arifmetika boʻyicha ;

  • ISO/IEC TS 18822:2015 standart fayl tizimi kutubxonasida, C++ 17 ga integratsiyalashgan;

  • ISO/IEC TS 19570:2015  C++ 17 ga integratsiyalashgan standart kutubxona algoritmlarining parallel versiyalarida;

  • ISO/IEC TS 19841:2015 dasturiy taʼminot tranzaksiya xotirasi ;

  • ISO/IEC TS 19568:2015 kutubxona kengaytmalarining yangi toʻplami boʻyicha, ularning baʼzilari allaqachon C++ 17 ga integratsiya qilingan ;

  • ISO/IEC TS 19217:2015 C++ tushunchalari boʻyicha, C++20 ga integratsiyalashgan;

  • ISO/IEC TS 19571:2016 parallellik uchun kutubxona kengaytmalari boʻyicha, ularning baʼzilari allaqachon C++ 20 ga integratsiya qilingan ;

  • ISO/IEC TS 19568:2017 umumiy maqsadli kutubxona kengaytmalarining yangi toʻplami haqida;

  • ISO/IEC TS 21425:2017  C++ 20 ga integratsiyalashgan diapazonlar uchun kutubxona kengaytmalari haqida;

  • ISO/IEC TS 22277:2017 korutinlar bo'yicha, C++ 20 ga integratsiyalashgan;

  • ISO/IEC TS 19216:2018 tarmoq kutubxonasida;

  • ISO/IEC TS 21544:2018 modullar boʻyicha, C++ 20 ga integratsiyalashgan;

  • ISO/IEC TS 19570:2018 parallelizm uchun kutubxona kengaytmalarining yangi to'plami haqida;

  • ISO/IEC TS 23619:2021 aks ettirish uchun yangi kengaytmalar haqida.

C++ tili ikkita asosiy komponentga ega: asosan C kichik to'plami tomonidan taqdim etilgan apparat xususiyatlarini to'g'ridan-to'g'ri xaritalash va ushbu xaritalashlar asosida nol-ustki abstraktsiyalar. Stroustrup C++ tilini “samarali va oqlangan abstraksiyalarni yaratish va ulardan foydalanish uchun yengil abstraksiya dasturlash tili” deb taʼriflaydi va "apparatga kirish va abstraktsiyani taklif qilish C++ tilining asosidir. Uni samarali bajarish uni boshqa tillardan ajratib turadigan narsadir." C++ C sintaksisining ko'p qismini meros qilib oladi . Quyida standart chiqishga xabar yozish uchun C++ Standard kutubxona oqim uskunasidan foydalanadigan «Salom talaba» dasturining Bjarne Stroustrup versiyasi keltirilgan :
#include
int main ()
{
std :: cout << "Salom,talaba! " ;
}




Statik saqlash muddati ob'ektlari

main() Statik saqlash muddati ob'ektlari kiritilishidan oldin yaratiladi va main() chiqishdan keyin yaratishning teskari tartibida yo'q qilinadi. Yaratishning aniq tartibi standart tomonidan belgilanmagan, ularni amalga oshirishni tashkil etishda ba'zi erkinliklarni amalga oshirishga imkon beradi. Rasmiyroq qilib aytadigan bo'lsak, bu turdagi ob'ektlar "dasturning amal qilish muddatigacha davom etishi kerak bo'lgan" xizmat muddatiga ega.


Statik saqlash muddati ob'ektlari ikki bosqichda ishga tushiriladi. Birinchidan, "statik ishga tushirish" amalga oshiriladi va faqat barcha statik ishga tushirish amalga oshirilgandan so'ng , "dinamik ishga tushirish" amalga oshiriladi. Statik ishga tushirishda barcha ob'ektlar birinchi navbatda nollar bilan ishga tushiriladi. Shundan so'ng, o‘zgarmas initsializatsiya bosqichiga ega bo'lgan barcha ob'ektlar o‘zgarmas ifoda bilan ishga tushiriladi. Standartda ko'rsatilmagan bo'lsa-da, statik ishga tushirish bosqichi kompilyatsiya vaqtida tugallanishi va bajariladigan faylning ma'lumotlar bo'limida saqlanishi mumkin. Dinamik ishga tushirish konstruktor yoki funktsiya chaqiruvi orqali amalga oshiriladigan barcha ob'ektni ishga tushirishni o'z ichiga oladi.  Dinamik ishga tushirish tartibi kompilyatsiya birligi ichidagi e'lon qilish tartibi sifatida aniqlanadi. Kompilyatsiya birliklari o'rtasida ishga tushirish tartibi haqida hech qanday kafolatlar berilmaydi.



Download 115.83 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling