Kontent qismiga oʻtish

C++

Vikipediya, ochiq ensiklopediya
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 (39 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 navbatida B va BCPL tillaridan kelib chiqqan. BCPL 1967-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 da UNIX 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 ob’ektli dasturlash gʻoyasi ilgari surildi. Huddi 70-chi yillar boshida strukturali dasturlash kabi, programmalarni hayotdagi jismlarni modellashtiruvchi ob’ektlar orqali tuzish dasturlash sohasida inqilob qildi.

C++ dan tashqari boshqa koʻp ob’ektli 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 ob’ektlarga asoslangan. C++ esa gibrid tildir. Unda C ga oʻhshab strukturali dasturlash yoki yangicha, ob’ektlar bilan dasturlash mumkin. Yangicha deyishimiz ham nisbiydir. Ob’ektli dasturlash falsafasi paydo boʻlganiga ham yigirma yildan oshayapti.

C++ funksiya va ob’ektlarning 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 ob’ekt/funksiyalarni qoʻllashni oʻrganishdir.

  1. „Overview of modules in C++“. Microsoft (2023-yil 24-aprel).
  2. 2,0 2,1 2,2 2,3 2,4 Stroustrup, Bjarne „A history of C++: 1979-1991“, . History of programming languages---II. ACM, 1996 — 699–769-bet. DOI:10.1145/234286.1057836. 
  3. Stroustrup, Bjarne „C++20: Reaching for the Aims of C++ - Bjarne Stroustrup - CppCon 2021“. CppCon (2021-yil 16-dekabr). 2021-yil 30-dekabrda asl nusxadan arxivlangan. Qaraldi: 2021-yil 30-dekabr.
  4. 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. 
  5. 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." 
  6. „Chapel spec (Acknowledgements)“. Cray Inc (2015-yil 1-oktyabr). 2018-yil 24-iyunda asl nusxadan arxivlangan. Qaraldi: 2016-yil 14-yanvar.
  7. Fogus, Michael „Rich Hickey Q&A“. Code Quarterly. 2017-yil 11-yanvarda asl nusxadan arxivlangan. Qaraldi: 2017-yil 11-yanvar.
  8. Harry. H. Chaudhary. „Cracking The Java Programming Interview :: 2000+ Java Interview Que/Ans“ (2014-yil 28-iyul). 2021-yil 27-mayda asl nusxadan arxivlangan. Qaraldi: 2016-yil 29-may.
  9. Roger Poon. „Scaling JS++: Abstraction, Performance, and Readability“ (2017-yil 1-may). 2020-yil 11-mayda asl nusxadan arxivlangan. Qaraldi: 2020-yil 21-aprel.
  10. „The evolution of an extension language: a history of Lua“. www.lua.org. Qaraldi: 2023-yil 4-yanvar.
  11. „FAQ Nim Programming Language“. 2017-yil 11-iyulda asl nusxadan arxivlangan. Qaraldi: 2020-yil 21-aprel.
  12. „9. Classes — Python 3.6.4 documentation“. docs.python.org. 2012-yil 23-oktyabrda asl nusxadan arxivlangan. Qaraldi: 2018-yil 9-yanvar.
  13. „Influences - The Rust Reference“. doc.rust-lang.org. Qaraldi: 2023-yil 4-yanvar.
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy