3.2.2. Tuzilmaviy dasturlash
Modulni dasturlashda u nafaqat kompyuterga, balki insonga ham tushunarli bo‘lishini hisobga olish
kerak: modulni ishlab chiquvchilar ham, uni tekshiruvchi shaxslar ham, modulni sozlash uchun test tuzuvchi
testchilar ham, modulga talab qilingan o‘zgarishlarni kirituvchi DV kuzatib boruvchilari ham modul ishi
mantiqini qayta-qayta tahlil etishga majbur bo‘ladilar. O‘ozirgi zamon dasturlash tillarida ushbu mantiqni
g‘oyat chalkashtirib yuboradigan vositalar ko‘p bo‘lib, ular modulni inson uchun tushunilishini
qiyinlashtiradi. SHuning uchun to‘g‘ri keladigan til vositalarini tanlash choralarini ko‘rish hamda ma’lum
dasturlash tartibiga rioya qilish zarur. Buning bilan bog‘liq holda Deykstra dasturni bir nechta turdagi
boshqarish konstruktsiyalari (tuzilmalar)dan iborat kompozitsiya sifatida qurishni taklif qildiki, bu
boshqarish konstruktsiyalari dastur ishi mantiqini tushunarliroq qilish imkonini beradi. Faqat shunday
konstruktsiyalardan foydalangan dasturlash tuzilmaviy (strukturali) dasturlash degan nom bilan ataldi.
Strukturali (tuzilmaviy) dasturlashning asosiy konstruktsiyalari quyidagilardir: ketma-ketlik,
tarmoqlanish va takrorlanish (4.4-rasmga qarang). Umumlashma operatorlar (ishlov berish uzellari) - S, S1,
S2 hamda predikat (shart) - R ushbu konstruktsiyalarning tarkibiy qismlari (komponentlaridir). Bunda yo
qo‘llanayotgan dasturlash tilining oddiy operatori (o‘zlashtirish, kirish, chiqish va protseduraga murojaat
qilish operatorlari), yoki tuzilmaviy (strukturali) dasturlash asosiy boshqaruv konsturktsiyalarining
kompozitsiyasi bo‘lgan dastur fragmenti umumlashma operator sifatida xizmat qilishi mumkin. Muhimi
shundaki, har bitta konstruktsiya boshqaruv bo‘yicha faqat bitta kirish va bitta chiqishga ega.
Yana shunisi ham muhimki, bu konstruktsiyalar hozirdanoq matematik ob’ektlardirlar (aynan shu
tuzilmaviy dasturlashning muvaffaqiyatini ta’minlaydi). Har bitta tuzilmaviy bo‘lmagan dastur uchun
funksional ekvivalent bo‘lgan (ya’ni aynan bitta masalani echadigan) tuzilma holiga keltirilgan dasturni
yaratish mumkin. Tuzilma holiga keltirilgan dasturlar uchun ma’lum bir xossalarning matematik isbotini
berish mumkin. Bu esa dasturdagi ayrim xatolarni aniqlash imkonini beradi. Bu masalaga alohida ma’ruza
bag‘ishlanadi.
Tuzilmaviy dasturlash ba’zida «GO TO siz dasturlash» deb ham ataladi. Biroq bu erda gap operator
GO TO da emas, balki undan betartib foydalanishdadir. Ko‘p hollarda tuzilmaviy dasturlash ayrim
dasturlash tillarida (masalan, FORTRAN da) aks ettirilganda, o‘tish operatori (GO TO) tuzilmaviy
konstruktsiyalarni ishlatish uchun qo‘llanadi. Bu tuzilmaviy dasturlash tamoilini buzmaydi. Dasturni aynan
«tuzilmaviy bo‘lmagan» o‘tish operatorlari chalkashtiradi, bunda ayniqsa matn modulida bajarilayotgan
o‘tish operatoridan yuqorida (avval) joylashgan operatorga o‘tish chalkashtiradi. Shunday bo‘lsa-da, o‘tish
operatorini chetlab o‘tishga urinsak, tuzilmaviy dasturlar nihoyatda katta va qo‘pol bo‘lib ketishi mumkin.
Bu esa ularning aniqligiga zarar etkazadi va matn modulida qo‘shimcha xatolarning paydo bo‘lish havfini
tug‘diradi. Shuning uchun mumkin bo‘lgan o‘rinda o‘tish operatorini chetlab o‘tishni maslahat berish
mumkin, ammo bu dastur aniqligiga zarar etkazmasligi kerak.
O‘tish operatorini qo‘llashning foydali jihatlari ham bor. O‘tish operatori yordamida tsikldan, ya’ni
muayyan tuzilmaviy birlik (umulashma operator) ishini tugallaydigan alohida shart-sharoit bo‘yicha
bajariladigan protseduradan chiqishni amalga oshirish mumkin. Buning bilan u dastur tuzilmasini faqat lokal
(ya’ni boshqalarga ta’sir qilmaydigan bitta o‘rinda) buzishi mumkin xolos. Favqulotda (odatda xato)
vaziyatlarga nisbatan yuzaga keladigan reaktsiya (munosabat)ni dastur tuzilmasida ishga solish ancha
qiyinchiliklar tug‘diradi.
Ketma-ketlik
S2
S1
S2
S1
Do'stlaringiz bilan baham: |