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: |