Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
264
oldindan aniqlangan ayrim hollarda aniqlanmagan. Masalan ko‘rsatkichlar tenglikni bildiradi. Lekin
foydalanuvchi bunday tenglik manzillari ko‘rsatkichlarda saqlangan strukturalar tenglikni bildirishni
xoxlashi mumkin.
Ayrim operatsiyalar ma’lum abstrakt tiplari ko‘pchilgi uchun kerak. Lekin ular universal
bo‘lmaganligi tufayli tipni ishlab chiqaruvchi ularni o‘zi aniqlashi kerak. Bunday opeatsiyalarga
iteratsiyalar, konstruktorlar va destruktorlar kiradi. Iteratsiyalar oldingi mavzularda muhokama
qilingan. Konstruktorlar yangi yaratilgan ob’ektlar qisimlarini nomlash uchun foydaliniladi.
Destruktorlar abstract tiplar ob’ektlari bilan band bo‘lgan dinamik xotirani qisimlarini bo‘shatish
uchun ishlatiladi. Oldin aytib o‘tilganidek ma’lumotlarning alohida tipining va ular bilan bog‘liq
operatsiyalarni inkapsulyatsiya amalga oshiridi. Concurrent Pascal (Brinch Hansen, 1975), Smalltalk
(Goldberg and Robson, 1983), C++ va Java tillari ma’lumotlari abstrakt tipini bilvosita qo‘llab-
quvvatlaydi. Bunga alternativ umumiy konstruksiyalarni qo‘llab quvvatlash bo‘lib, ular
predmetlarning har qanday miqdorini aniqlatdi, ularning har biri alohida xolida moduldan
tashqarida ko‘rinadi. Bu yondashish Modula-2 va Ada dasturlash tillarida amalga oshirilgan. Biz bu
loyihalarni inkapsulyatsiya deb atadik. Inskopsulatsiya ma’lumotlar abstract tipi emas balki ularni
umumlashtiruvchisidir va shu hususida inkapsulyatsiya dan ma’lumotlar abstrakt tipini aniqlashda
foydalanish mumkin.
Tiplar ishlanmasi asosiy savollarini inkapsulyatsiya yordamida belgilaymiz. Birinchidan
abstract bo‘lishi mumkin bo‘lgan ko‘pgina tiplarni cheklash kerakmi? Bunaqa chegaralash bir
qancha ustunliklarga ega. Xususan faqat ko‘rsatkichlar abstract bo‘lsa, dasturlarni ishlashda
takroriy kompilyatsiya bilan bog‘liq bo‘lgan katta muammolardan qochish mumkin. Boshqa
tamondan ayrim tadqiqotchilar buni juda kuchli cheklanish deb biladilar, chunki u ko‘pgina
kamchiliklarga ega. Tiplar ishlanmalarining ikkinchi savoli ma’lumotlar abstrakt tipini parametrlash
mumkinmi? Masalan agar dasturlash tili ma’lumotlar tiplarini parametrlashni qo‘llab-quvvatlasa
ma’lumotlar abstrakt tiplarini har qanday skalyar tipdagi elementlaran iborat bo‘lgan ma’lumotlar
abstrakt tiplarining navbatlarini ishlab chiqish mumkin. Ma’lumotlarning parametrlashgan
abstrakt tiplari keying mavzuda muhokama qilinadi. Xulosa qilib aytamizki yana shunday savollar
mavjudki ma’lumotlarga kirishni boshqarish qanday amalga oshiriladi va bu boshqaruv qanday
aniqlanadi.
Do'stlaringiz bilan baham: