Bog'liq Mantiqiy tiplar va ular ustida amallar bajarish
Mantiqiy tiplar va ular ustida amallar bajarish Ushbu mavzu boshlanishida ma’lumotlar tipi konsepsiyasi va ma’lumotlarning asosiy tiplari xossalari keltirilgan. Keyin sanaluvchi va cheklangan tiplar strukturasi ko‘rib chiqilgan. Bundan keyin ma’lumotlarning strukturali tiplari o‘rganib chiqilgan bo‘lib, asosiy e’tibor massivlar, yozuvlar va umumlashmalarga qaratilgan. Xulosada ko‘p turdagi va sslkali tiplar ko‘rib chiqilgan.
Tiplarning har bir kategoriyasi uchun ishlab chiqarish muammolari ko‘rib chiqilgan va kerakli tillar ishlab chiqaruvchilari tomonidan qabul qilinuvchi konstrukturaviy qarorlar tushuntirilgan. So‘ngra, ushbu tillarning strukturalariga baho berilgan.
Tiplar strukturasiga ularni amalga oshirish metodlari katta ta’sir ko‘rsatadi. Ushbu sababga ko‘ra ushbu mavzuga yana bir ahamiyatli bo‘lim qo‘shilgan bo‘lib, u ma’lumotlar, asosan massivlarni amalga oshirish muammolariga yo‘naltirilgandir.
Ma’lumotlarni qayta ishlash orqali kompyuter natijalarga erishadi. Ushbu jarayonni bajarishning osonligi ma’lumotlar tipi ushbu masalaga qanchalik muvofiqligi bilan o‘lchanadi. Buning natijasida, mos tiplarning xilmaxilligi va ma’lumotlar strukturalarini qo‘llabquvvatlash tilda oldindan ko‘rib chiqilishi juda muhim.
Ma’lumotlar tiplarining zamonaviy konsepsiyalari oxirgi 40 yillardan beri rivojlanib kelmoqda. Boshlang‘ich dasturlash tillarida aniq bir masalalarga mos keluvchi barcha ma’lumotlarning strukturalari ushbu tilda qo‘llaniluvchi ma’lumotlarning asosiy strukturalarining kichik miqdori bilan shakllantirilgan. Masalan, FORTRAN 90 tiligacha ishlab chiqilgan FORTRAN tili versiyalarida aloqa ro‘yxati va ikkilik daraxtlar, odatda, massivlar yordamida modellashtirilgan.
FORTRAN I tilida qo‘llanilgan modeldan tashqariga qo‘yilgan birinchi qadam COBOL tilidagi ma’lumotlar bazasi strukturasini ishlab chiqaruvchilari tomonidan amalga oshirilgan bo‘lib, bu dasturchilarga o‘nlik sanoq sistemasidagi sonlar aniqligini o‘rnatish va axborot saqlovchi yozuvlarni taqdim etish uchun ma’lumotlarning strukturaviy tiplarini qo‘llash imkonini bergan. PL/I tilida butun sonli qiymatlar va haqiqiy sonlar aniqligini o‘rnatish imkoniyati yanada mukammallashtirildi. Keyinchalik, ushbu imkoniyatni taqdim etuvchi vositalar Ada va FORTRAN 90 tillariga kiritildi. Ilovalar sohasini kengaytirish maqsadida, PL/I tiliga turli tipdagi ma’lumotlar kiritildi. Fikrimizcha, dasturchiga asosiy tipdagi opreatorlar hamda ma’lumotlarni bergan yaxshi edi, bu esa foydalanuvchi tomonidan aniqlanuvchi ma’lumotlar tipini yaratishga imkon berardi, ularga struktura biriktirilar edi, xuddi bu ALGOL 68 tilida bajarilganidek. Bu ko‘rinib turganidek, ma’lumotlar tiplarini shakllantirish sohasidagi eng katta yutuqlardan biri hisoblanadi. Foydalanuvchi tomonidan aniqlanuvchi ma’lumotlar tiplarining afzalliklarini aytib o‘tamiz. Ushbu tiplar dasturlarning o‘qiluvchanligini oshiradi, chunki ularga ma’noli ismlarni qo‘llash mumkin. Foydalaluvchi tomonidan aniqlanuvchi tiplar o‘zgaruvchilar tiplarini tekshiradi. Foydalaluvchi tomonidan aniqlanuvchi tiplar mavjud bo‘lmasligi mumkin emas. Bundan tashqari, ushbu tiplar dastur modifikatsiyasini yaxshilaydi: dasturchi dasturdagi o‘zgaruvchilar kategoriyalarining tiplarini e’lon qilish operatorini o‘zgartirish orqali o‘zgartirishi mumkin.
1970yillar oxirlarida paydo bo‘lgan ma’lumotlar tiplarini shakllantirish konsepsiyasi foydalanuvchi tomonidan aniqlanuvchi tiplar g‘oyalarini birlashtirish natijasida Ada 83 tiliga kiritilgan edi. Foydalaluvchi tomonidan aniqlanuvchi ma’lumotlar tiplari asosida yotuvchi metodologiyasi shundan iboratki, dasturchi o‘zgaruvchilarning har bir alohida sinflari uchun alohia tip yaratishi lozim va u vazifaning predmetli sohasida aniqlanadi. Bundan tashqari, vazifaning predmetli sohasidan o‘zgaruvchilar abstraksiyasi bo‘lgan tiplar unikalligini dasturlash tili ta’minlashi lozim. Bu etarli darajada kuchli konsepsiya bo‘lib, dasturiy ta’minot ishlab chiqarilish jarayoniga katta ta’sir ko‘rsatadi. Yana bir qadam bosib Ada 83 tilida modellashtirilishi mumkin bo‘lgan ma’lumotlarning mavhum tirlariga o‘tamiz. Ma’lumotlarning mavhum tiplari asosida yotuvchi g‘oya tipni qo‘llashdan ushbu tipdagi o‘zgaruvchilarni e’lon qilish usuli hamda ular ustida bajariluvchi amallardan ajratishdan iborat. Yuqori bosqichli dasturlash tillarida ko‘rib chiqilgan ma’lumotlarning barcha tiplari mavhum hisoblanadi. Foydalanuvchi tomonidan aniqlanuvchi mavhum tipli ma’lumotlar 10 mavzuda ko‘rib chiqilgan.
Ma’lumotlarning eng ko‘p tarqalgan ikki strukturaviy (noskalyar) tiplari massivlar hamda qaydlar hisoblanadi. Ma’lumotlarning boshqa bir nechta turlari kabi tip operatorlari yoki konstruktorlar orqali beriladi. Ulardan ushbu tipdagi o‘zgaruvchilarni yaratish uchun foydalaniladi. Tip operatorlariga misol qilib C tilida mavjud aylana hamda kvadrat qavslarni, yulduzchalarni keltirish mumkin. YUlduzchalardan massivlar, funksiyalar va ko‘rsatkichlarni berish uchun foydalaniladi.
Deskriptorlar terminlarida o‘zgaruvchilar haqida mavhum ham, aniq ham o‘ylash qulay. Deskriptor o‘zgaruvchilar atributlarining umumlashmasi bo‘lib, ular ushbu atributlarni saqlovchi xotira katakchalari to‘plami ko‘rinishida amalga oshiriladi. Agar barcha o‘zgaruvchilar statistik bo‘lsa, u holda deskriptorlar faqat kompilyasiya vaqtidagina kerak. Statik deskriptorlar identifikatorlar jadvali bo‘lagi ko‘rinishida kompilyator orqali yaratiladi va kompilyasiya davrida qo‘llaniladi. Dinamik atributlar yoki uning bo‘laklari, o‘z navbatida, dastur bajarilish paytida dinamik deskriptorga muhtoj. Bu holda deskriptordan dasturlar bajarilishini qo‘llabquvvatlash tizimi foydalanadi. Statik deskriptorlar ham, dinamik deskriptorlar ham tiplarni tekshirish hamda xotirada o‘zgaruvchilarni joylash va o‘chirish amallarida foydalaniladi.
O‘zgaruvchi qiymati va u egallovchi xotira deganda, “ob’ekt” so‘zi tushuniladi. Ushbu kitobda “ob’ekt” deganda foydalanuvchi tomonidan aniqlanuvchi mavhum tipli ma’lumotlar nusxalari tushuniladi va biz undan o‘rnatilgan tiplar o‘zgaruvchilari qiymatlarini tavsiflashda foydalanmadik. Dasturlashning ob’ektga yo‘naltirilgan tillarida har qanday o‘rnatilgan yoki foydalanuvchi tomonidan aniqlangan sinf nusxasi ob’ekt deganidir. Bunday ob’ektlar 10 va 11 mavzularda to‘liq ko‘rib chiqiladi.
Keyingi bo‘limlarda keng tarqalib borayotgan ma’lumotlar tiplari ko‘rib chiqilgan. Ulardan ko‘pchiligi uchun ular bilan bog‘liq ishlab chiqarish muammolari shakllantiriladi. Ularning barchasi uchun kamida bitta misol keltirilgan. Ma’lumotlarning barcha tiplari uchun quyidagi muammo umumiydir: mavjud tipli o‘zgaruvchilar bilan qanday amallar ko‘rib chiqilgan va ular qanday beriladi?