C++ Logotip C++ standartlari qo‘mitasi tomonidan tasdiqlangan |
|
Paradigmalari | Koʻp paradigmali:protsessual,imperativ,funksional,obyektga yoʻnaltirilgan,umumlashtirilgan,modulli |
---|
Oilasi | C |
---|
Muallifi | Bjarne Stroustrup |
---|
Tuzilgan yili | 1985(40 yil avval) (1985) |
---|
Operatsion tizim | Kross-platformali |
---|
Fayl kengaytmalari | .C, .cc, .cpp, .cxx,.c++, .h, .H, .hh, .hpp, .hxx,.h++ .cppm, .ixx[1] |
---|
Vebsayt | isocpp.org |
---|
Bunga asos boʻlgan tillar |
---|
Ada,ALGOL 68[2]BCPL[3],C,CLU[2],F#[4],ML,Mesa[2]Modula-2[2],Simula,Smalltalk[2] |
Buning asosida tuzilgan tillar |
---|
Ada 95,C#[5],C99,Carbon,Chapel[6],Clojure[7],D,Java[8],JS++[9],Lua[10],Nim[11],Objective-C++,Perl,PHP,Python[12],Rust[13],Seed7 |
C++ – C tiliga asoslangan dasturlash tili boʻlib,C ham oʻz navbatidaB vaBCPL tillaridan kelib chiqqan. BCPL1967-yilda Martin Richards tomonidan tuzilgan va operatsion sistemalarni yozish uchun moʻljallangan edi.
Ken Thompson oʻzining B tilida BCPL ning koʻp hossalarini kiritgan va B daUNIX operatsion tizimining birinchi versiyalarini yozgan. BCPL ham, B ham tipsiz til boʻlgan. Yani oʻzgaruvchilarning maʼlum bir tili boʻlmagan – har bir oʻzgaruvchi kompyuter hotirasida faqat bir bayt yer egallagan.Oʻzgaruvchini qanday sifatda ishlatish esa, yani butun sonmi, kasrli sonmi yoki harfdekmi, dasturchi vazifasi boʻlgan.
C tilini Dennis Ritchie B dan keltirib chiqardi va uni 1972-yili ilk bor Bell Laboratoriyasida, DEC PDP-11 kompyuterida qoʻlladi. C oʻzidan oldingi B va BCPL tillarining juda koʻp muhim tomonlarini oʻz ichiga olish bilan bir qatorda oʻzgaruvchilarni tiplashtirdi va bir qator boshqa yangiliklarni kiritdi. Boshlanishda C asosan UNIX sistemalarida keng tarqaldi. Hozirda operatsion sistemalarning asosiy qismi C/C++ da yozilmoqda. C mashina arhitekturasiga bogʻlangan tildir. Lekin yashi rejalashtirish orqali dasturlarni turli kompyuter platformalarida ishlaydigan qilsa boʻladi.
1983-yilda, C tili keng tarqalgani sababli, uni standartlash harakati boshlandi. Buning uchun Amerika Milliy Standartlar Komiteti (ANSI) qoshida X3J11 tehnik komitet tuzildi. Va 1989-yilda ushbu standart qabul qilindi. Standartni dunyo boʻyicha keng tarqatish maqsadida 1990-yilda ANSI va Dunyo Standartlar Tashkiloti (ISO) hamkorlikda C ning ANSI/ISO 9899:1990 standartini qabul qilishdi. Shu sababli C da yozilgan dasturlar kam miqdordagi oʻzgarishlar yoki umuman oʻzgarishlarsiz juda koʻp kompyuter platformalarida ishlaydi.
C++ 1980-yillar boshida Bjarne Stroustrup tomonidan C ga asoslangan tarzda tuzildi. C++ juda koʻp qoʻshimchalarni oʻz ichiga olgan, lekin eng asosiysi u obyektlar bilan dasturlashga imkon beradi.
Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb etmoda. Buni taʼminlash uchun obyektli dasturlash gʻoyasi ilgari surildi. Huddi 70-chi yillar boshida strukturali dasturlash kabi, programmalarni hayotdagi jismlarni modellashtiruvchi obyektlar orqali tuzish dasturlash sohasida inqilob qildi.
C++ dan tashqari boshqa koʻp obyektli dasturlshga yoʻnaltirilgan tillar paydo boʻldi. Shulardan eng koʻzga tashlanadigani Xerox ning Palo Altoda joylashgan ilmiy-qidiruv markazida (PARC) tuzilgan Smalltalk dasturlash tilidir. Smalltalk da hamma narsa obyektlarga asoslangan. C++ esa gibrid tildir. Unda C ga oʻhshab strukturali dasturlash yoki yangicha, obyektlar bilan dasturlash mumkin. Yangicha deyishimiz ham nisbiydir. Obyektli dasturlash falsafasi paydo boʻlganiga ham yigirma yildan oshayapti.
C++ funksiya va obyektlarning juda boy kutubhonasiga ega. Yani C++ da dasturlashni oʻrganish ikki qismga boʻlinadi. Birinchisi bu C++ ni oʻzini oʻrganish, ikkinchisi esa C++ ning standart kutubhonasidagi tayyor obyekt/funksiyalarni qoʻllashni oʻrganishdir.
- ↑„Overview of modules in C++“. Microsoft (2023-yil 24-aprel).
- ↑2,02,12,22,32,4Stroustrup, Bjarne „A history of C++: 1979-1991“, . History of programming languages---II. ACM, 1996 — 699–769-bet.DOI:10.1145/234286.1057836.
- ↑Stroustrup, Bjarne „C++20: Reaching for the Aims of C++ - Bjarne Stroustrup - CppCon 2021“. CppCon (2021-yil 16-dekabr). 2021-yil 30-dekabrda asl nusxadanarxivlangan. Qaraldi: 2021-yil 30-dekabr.
- ↑Stroustrup, Bjarne (2020-06-12). "Thriving in a crowded and changing world: C++ 2006–2020". Proceedings of the ACM on Programming Languages (Association for Computing Machinery (ACM)) 4 (HOPL): 1–168. doi:10.1145/3386320. ISSN 2475-1421.
- ↑Naugler, David (May 2007). "C# 2.0 for C++ and Java programmer: conference workshop". Journal of Computing Sciences in Colleges 22 (5). "Although C# has been strongly influenced by Java it has also been strongly influenced by C++ and is best viewed as a descendant of both C++ and Java."
- ↑„Chapel spec (Acknowledgements)“. Cray Inc (2015-yil 1-oktyabr). 2018-yil 24-iyunda asl nusxadanarxivlangan. Qaraldi: 2016-yil 14-yanvar.
- ↑Fogus, Michael „Rich Hickey Q&A“. Code Quarterly. 2017-yil 11-yanvarda asl nusxadanarxivlangan. Qaraldi: 2017-yil 11-yanvar.
- ↑Harry. H. Chaudhary. „Cracking The Java Programming Interview :: 2000+ Java Interview Que/Ans“ (2014-yil 28-iyul). 2021-yil 27-mayda asl nusxadanarxivlangan. Qaraldi: 2016-yil 29-may.
- ↑Roger Poon. „Scaling JS++: Abstraction, Performance, and Readability“ (2017-yil 1-may). 2020-yil 11-mayda asl nusxadanarxivlangan. Qaraldi: 2020-yil 21-aprel.
- ↑„The evolution of an extension language: a history of Lua“. www.lua.org. Qaraldi: 2023-yil 4-yanvar.
- ↑„FAQ Nim Programming Language“. 2017-yil 11-iyulda asl nusxadanarxivlangan. Qaraldi: 2020-yil 21-aprel.
- ↑„9. Classes — Python 3.6.4 documentation“. docs.python.org. 2012-yil 23-oktyabrda asl nusxadanarxivlangan. Qaraldi: 2018-yil 9-yanvar.
- ↑„Influences - The Rust Reference“. doc.rust-lang.org. Qaraldi: 2023-yil 4-yanvar.