hol edi. Bundan tashqari, mashina kodlaridagi dasturni tushunish g‘oyat
murakkab edi.
Protseduraviy yondoshuv. Shu vaqtgacha dasturlar berilgan
ma'lumotlar ustida biror-bir amal bajaruvchi protseduralar ketma-
ketligidan iborat edi. Protsedura yoki funksiya ham o‘zida aniqlangan ketma-
ket bajariluvchi buyruqlar to‘plamidan iborat.
Bunda berilgan
ma’lumotlarga murojaatlar protseduralarga ajratilgan holda amalga
oshiriladi.
Protsedura tillari dasturchiga axborotga ishlov berish dasturini pastroq
darajadagi bir nechta protseduraga bo‘lib tashlash imkonini beradi. Pastroq
darajadagi bunday protseduralar dasturning umumiy tuzilmasini belgilab
beradi. Ushbu protseduralarga izchil murojaatlar protseduralardan tashkil
topgan dasturlarning bajarilishini boshqaradi.
Dasturlashning bu yangi paradigmasi mashina tilida dasturlash
paradigmasiga nisbatan ancha ilg‘or bo‘lib,
unga tuzilmalashtirishning
asosiy vositasi bo‘lgan protseduralar qo‘shilgan edi. Kichik funksiyalarni
nafaqat tushunish, balki sozlash ham osonroq kechadi.
Strukturaviy dasturlashning asosiy g‘oyasi «bo‘lakla va hukmronlik qil»
prinsipiga butunlay mos keladi. Kompyuter dasturini masalalar to‘plamidan
iborat deb qaraymiz. Oddiy tavsiflash uchun murakkab bo‘lgan ixtiyoriy
masalani
bir nechta, nisbatan kichikroq bo‘lgan, tarkibiy masalalarga
ajratamiz va bo‘linishni toki masalalar tushunishi uchun yetarli darajada
oddiy bo‘lguncha davom ettiramiz.
Misol sifatida kompaniya xizmatchilarining o‘rtacha ish haqini
hisoblashni olamiz. Bu masala sodda emas.
Uni qator qism masalalarga
bo‘lishimiz mumkin:
1.
Har bir xizmatchining oylik maoshi qanchaligini aniqlaymiz.
2.
Kompaniya xodimlari sonini aniqlaymiz.
3.
Barcha ish haqlarini yig‘amiz.
4.
Hosil bo‘lgan yig‘indini kompaniya xodimlari soniga bo‘lamiz.
Xodimlarning oylik maoshlari yig‘indisini hisoblash jarayonini ham bir
necha bosqichlarga ajratish mumkin.
1.
Har bir xodim haqidagi yozuvni o‘qiymiz.
2.
Ish haqi to‘g‘risidagi ma’lumotni olamiz.
3.
Ish haqi qiymatini yig‘indiga qo‘shamiz.
4.
Keyingi xodim haqidagi yozuvni o‘qiymiz.
O‘z navbatida, har bir xodim haqidagi yozuvni o‘qish jarayonini ham
nisbatan kichikroq qism operatsiyalarga ajratish mumkin:
1.
Xizmatchi faylini ochamiz.
2.
Kerakli yozuvga o‘tamiz.
3.
Ma'lumotlarni diskdan o‘qiymiz.
Strukturaviy dasturlash murakkab masalalarni yechishda yetarlicha
muvafaqqiyatli uslub bo‘lib qoldi. Lekin 1980-yillar oxirlarida strukturaviy
dasturlashning ham ayrim kamchiliklari ko‘zga tashlandi.
Birinchidan, berilgan ma'lumotlar (masalan, xodimlar haqidagi yozuv)
va ular ustidagi amallar (izlash, tahrirlash) bajarilishining bir butun tarzda
tashkil etilishidek tabiiy jarayon realizatsiya qilinmagan edi.
Aksincha,
protseduraviy dasturlash berilganlar strukturasini bu ma’lumotlar ustida
amallar bajaradigan funksiyalarga ajratgan edi.
Ikkinchidan, dasturchilar doimiy tarzda eski muammolarning yangi
yechimlarini ixtiro qilar edilar. Bu vaziyat go‘yoki velosipedni qayta ixtiro
qilishga o‘xshab ketar edi. Ko‘plab dasturlarda takrorlanuvchi bloklarni ko‘p
martalab qo‘llash imkoniyatiga bo‘lgan xohish tabiiydir.
Buni radio ishlab
chiqaruvchi tomonidan priyomnikni yig‘ishga o‘xshatish mumkin.
Konstruktor har safar diod va tranzistorni ixtiro qilmaydi. U oddiygina –
oldin tayyorlangan radio detallaridan foydalanadi xolos. Dasturiy ta’minotni
ishlab chiquvchilar uchun esa bunday imkoniyat ko‘p yillar mobaynida yo‘q
edi.
Boshqa tomondan, protsedurali dasturlash koddan takroran
foydalanish imkonini cheklab qo‘yadi. Shu narsa aniq bo‘ldiki, protsedurali
dasturlash usullari bilan dasturlarni ishlab chiqishda diqqatni
ma’lumotlarga qaratishning o‘zi muammolarni keltirib chiqarar ekan.
Chunki
ma'lumotlar
va
protsedura
ajralgan,
ma'lumotlar
inkapsulyatsiyalanmagan. Bu nimaga olib keladi? Shunga olib keladiki, har
bir protsedura ma’lumotlarni nima qilish
kerakligini va ular qayerda
joylashganini bilmog‘i lozim bo‘ladi. Agar protsedura ma'lumotlar ustidan
noto‘g‘ri amallarni bajarsa u ma'lumotlarni buzib qo‘yishi mumkin. Har bir
protsedura ma’lumotlarga kirish usullarini dasturlashi lozim bo‘lganligi
tufayli, ma’lumotlar taqdimotning o‘zgarishi dasturning ushbu kirish amalga
oshirilayotgan barcha o‘rinlarining o‘zgarishiga olib kelar edi. Shunday qilib,
hatto eng kichik to‘g‘rilash ham butun dasturda qator o‘zgarishlarni sodir
bo‘lishiga olib kelar edi.
Dostları ilə paylaş: