Mavzu: C++ tilning tarkibi
Reja:
1. C++ dasturlash tilining yaratilish tarixi
2. Tilning tarkibi
3. Til alifbosi
4. Identifikatorlar. Kalit so’zlar
5. Konstantalar. Izohlar
C++ dasturlash tilining yaratilish tarixi
C dasturlash tilini Dennis Ritchie B dan keltirib chiqardi va uni 1972 yili uni ilk bor Bell Laboratoriyasida, DEC PDP-11 kompyuterida qo’lladi. C o’zidan oldingi B va BCPL tillarining juda ko’p muhim tomonlarni o’z ichiga olishi bilan bir qatorda o’zgaruvchilarni tiplashtirdi va bir qator boshqa yangiliklarni kiritdi. Boshlanishda C asosan UNIX sistemalarida keng tarqaldi. Xozirda operasion sistemalarning asosiy qismi C++ dasturlash tillarida yozilmoqda.
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.
C++ dasturlash tilining yaratilish tarixi
Dasturlarni tez va sifatli yozish xozirgi kunda katta axamiyat kasb etmoqda. Buni ta’minlash uchun obyektli dasturlash g’oyasi ilgari surildi. 70-yillar boshida strukturali dasturlash kabi, dasturlarni xayotdagi jismlarni modellashtiruvchi obyektlar orqali tuzish dasturlash soxasida inqilob qildi desak mubolag’a bo’lmaydi.
C++ dasturlash tilidan tashqari boshqa ko’p obyektli dasturlashga 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 xamma narsa obyektlarga asoslangan. C++ esa gibrid tildir.
C++ dasturlash tilining yaratilish tarixi
Unda C ga o’xshab strukturali dasturlash yoki yangicha, obyektlar bilan dasturlash mumkin. Yangicha deyishimiz xam nisbiydir. Obyektli dasturlash falsafasi paydo bo’lganiga xam yigirma yildan ortiq vaqt o’tdi.
C++ funksiya va obyektlarning juda boy kutubxonasiga ega. Ya’ni C++ da dasturlashni o’rganish ikki qismga bo’linadi. Birinchisi bu C++ ni o’zini o’rganish, ikkinchisi esa C++ ning standart kutubxonasidagi tayyor obyekt va funksiyalarni qo’llashni o’rganishdir.
C++ dasturlash tilining yaratilish tarixi
1980 yilda C tilining avlodi C++ dasturlash tili yaratildiki, unda strukturali va obyektga yo’naltirilgan dasturlash texnologiyasiga tayangan xolda dastur yaratish imkoniyati tug’ildi.
ANSI standarti. Amerika milliy standartlar instituti (American National Standards Institute – ANSI) rahbarligi ostidagi Ctandartlarni akkreditivlash komiteti (Accredited Standards Committee) C++ tilining xalqaro standartini tuzdi.
C++ standarti ayni vaqtda ISO – International Standards Organization (Ctandartlash bo’yicha halqaro tashkilot) standarti deb ham nomlanadi.
Tilning tarkibi
Ixtiyoriy tabiiy tilning matnida 4 ta asosiy elementni ajratib ko’rsatish mumkin: simvollar, so’zlar, so’z birikmalari va gaplar. Bunga o’xshash elementlarni dasturlash til ham o’z ichiga oladi, faqat so’zlar leksemalar (elementar tuzilmalar) so’z birikmalari - ifodalar, gaplar – operatorlar deb ataladi. Leksemalar simvollarda, ifodalar – leksema va simvollardan, operatorlar – simvollar, ifodalar va leksemalardan iborat
Tilning tarkibi
- Til alifbosi, yoki uning simvollari – tildagi barcha matnlari yoziladigan asosiy bo’linmas belgilar.
- Leksema, yoki elementar tuzilma – mustaqil ma’noga ega tilning minimal birligi.
- Ifoda biror qiymatni hisoblash qoidasida boradi.
- Operatorlar biror amalning tugallangan tavsifini beradi.
Til alifbosi
C++ tilning alifbosi quyidagilarni o’z ichiga oladi:
- Katta va kichik lotin xarflar va ta’kidlash ishorasi
- 0 dan 9 gacha arab raqamlar
- Maxsus belgilar: " { } , ¦ [ ] ( ) + - / % * . \
' : ? < = > ! & # ~ ; ^
Bo’shliq simvollari: bo’shliq, tabulasiya simvollari, yangi satrga o’tish simvollari.
Alifbosi simvollaridan til leksemalari shakllanadi:
- identifikatorlar
- tayanch (zahiralangan) so’zlar
- amallar ishoralari
- konstantalar
- ajratuvchilar (qavslar, nuqta, vergul, bo’shliq belgilari)
Identifikatorlar
Identifikator – bu daturiy obyektning nomi. Identifikatorda lotin xarflari, raqamlar va ta’kid belgilari ishlatiladi. Katta va yozuv harflari farqlanadi, sysop, SySoP, SYSOP - uchta turli nomlar. Identifikatorning birinchi simvoli bo’lib harf yoki tartib belgisi bo’lishi mo’mkin, lekin raqam bo’lmay nomlar orasiga bo’sh joy qoldirishmaydi.
Identifikator uzunligi standart bo’yicha chegaralangan, lekin ba’zi kompilyatorlar va komponovkachilar unga cheklashlar qo’yadi. Identifikator o’zgaruvchi, funksiya, tip va h.k.larni e’lon qilish bosqichida yaratiladi, shundan so’ng uni dasturning keyingi operatorlarida foydalanish mumkin.
Kalit so’zlar
Kalit so’zlar – komplyator uchun maxsus ahamiyatga ega bo’lgan zahiralangan identifikatorlar. Ularni faqat qanday ma’noda aniqlangan bo’lsa o’sha ma’noda foydalanish mumkin.
Amallar ishoralari
Amal ishorasi- operandlar ustida amalni aniqlovchi bitta yoki undan ziyod simvollar. Amal ishorasi ichida bo’shliqlar qo’yilmaydi. Amallar ulardagi operandlar soniga qarab ular, binar va ternar amallarga bo’linadi. Bitta ishora kontekstga bog’liq ravishda turlicha talqin qilinishi mumkin. [], () va ? : lardan tashqari barcha amallar ishoralari alohida leksemalardan iborat.
Konstantalar
Konstantalar deb o’zgarmaydigan miqdorlarga aytiladi. Butun, haqiqiy, simvol va satr konstantalar mavjud. Leksema sifatida konstantani ajratib kompilyator uning tashqi ko’rinishi bo’yicha tiplardan biriga kiritadi. Har bir tipga mos keluvchi konstantalar diagrammalari jadvalda keltirilgan.
Konstantalar
Izohlar
Izohlar yo ikkita simvoldan “to’g’ri qiyshiq chiziq” (//) boshlanib va yangi satrga o’tish simvoli bilan tugaydi, yoki simvol – qavslar / * va */ orasiga olinadi. Izoh ichida berilgan kompyuterdagi mumkin bo’lgan ixtiyoriy simvollardan foydalanish mumkin, chunki kompilyator sharhlarini inkor yetadi.
Ichma – ich joylashgan izohlar-qavslar standart yo’l qo’yilmaydi, ba’zilarida esa bunga yo’l qo’yiladi.
SAVOLLAR
1. Interpretator va kompilyator orasidagi farq nimadan iborat?
2. Dasturning berilgan kodi qanday kompilyasiya qilinadi?
3. .srr kengaytmali dastur kodini izoxlab bering.
4. Kompilyator va preprosessorning farqi nimadan iborat?
5. #include direktivasi qanday vazifani bajaradi.
6. Qanday izoh turlarini bilasiz va ular nima bilan farq qiladi?