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.
3.4-rasm. Tuzilmaviy dasturlashning asosiy boshqarish konsturktsiyalari
Chunki bunda tuzilmaviy birlikdan muddatdan oldin chiqishnigina emas, balki bu vaziyatga tegishli ishlov berishni ham amalga oshirish (masalan, to‘g‘ri keladigan tashxislash axborotini chiqarib berish) talab qilinadi. Favqulotda vaziyatning ishlovchisi dasturning to‘g‘ri kelgan tuzilmaviy bosqichida turishi mumkin, unga murojaat esa turli quyi bosqichlardan turib amalga oshirilishi mumkin. Favqulotda vaziyatlarga reaktsiya (munosabat) quyidagicha amalga oshiriladi. Favqulotda vaziyatlarning ishlovchilari u yoki bu tuzilmaviy birlik oxiriga joylashadi hamda har bir shunday ishlov beruvchi shunday dasturlanadiki, ishini tugatgach, o‘zi o‘rnashtirilgan tuzilmaviy birlik oxiridan chiqishni amalga oshiradi. ¤tish operatori shunday ishlov beruvchiga ushbu tuzilmaviy birlikdan turib murojaatni amalga oshiradi.
Do'stlaringiz bilan baham: |