13 O‘zaro bog‘liq dasturlar O‘zaro bog‘liq dasturlar (coroutines) – bu qism dasturlarning alohida
xilmaxilligidir. Odatda chaqiruvchi va chaqiriluvchi qism dasturlar orasidagi
“boshliqishchi” munosabatidan farqli ravishda, chaqiruvchi va chaqiriluvchi o‘zaro
bog‘liq dasturlar o‘zaro tengdir. O‘zaro bog‘liq dasturlarni boshqarish mexanizmi
simmetrik modullarni boshqarish modeli deb ham ataladi.
Simmetrik modullarni boshqarish konsepsiyalarining asosiy kelib chiqish
tarixini aniqlash qiyin. O‘zaro bog‘liq dasturlar eng oldingi maqolalarda sitaktik
tahlilga qo‘llanilgan (Conway, 1963). O‘zaro bog‘liq dasturlarni qo‘llabquvvatlash
vositalariga ega bo‘lgan yuqori bosqichdagi birinchi dasturlash tili SIMULA 67
dasturlash tilidir. Eslatib o‘taylik, SIMULA ning boshlang‘ich maqsadi tizimlarni
modellashtirish bo‘lib, ushbu tizimlar mustaqil jara1nlarni modellashtirishni talab
qilgan. SIMULA 67 tilida o‘zaro bog‘liq dasturlarning yaratilishiga shu sababchi
bo‘lgan. O‘zaro bog‘liq dasturlarni qo‘llovchi boshqa dasturlash tillari – bu BLISS
(Wulf et al., 1971), INTERLISP (Teitelman, 1975) va Modula-2 (Wirth, 1985) dir.
O‘zaro bog‘liq dasturlar bir nechta kiruvchi nuqtalarga ega bo‘lib, o‘zaro
bog‘liq dasturlar tomonidan boshqariladi. Ular chaqiruvlar orasida o‘z ahvolini
qo‘llabquvvatlash vositalariga ham egadir. Bu o‘zaro bog‘liq dasturlar o‘zlarining
tarixlariga bog‘liq bo‘lishlari lozimligini va natijada, statistik mahalliy o‘zgaruvchilarga
ega bo‘lishlari kerakligini bildiradi. O‘zaro bog‘liq dasturlarni qayta bajarish ularning
boshlang‘ichi bilan mos tushmaydigan nuqtalardan boshlanadi. Buning natijasida,
o‘zaro bog‘liq dasturlarni aktivlashtirishning ushbu jarayoni chaqiriq deb emas, balki
yangilanish (resume) deb ataladi.
O‘zaro bog‘liq dasturlar qism dasturlarning bir xossasiga ega: bir vaqtning
o‘zida faqatgina bir dona o‘zaro bog‘liq dasturlar bajarilishi mumkin. Ammo, o‘zaro
bog‘liq dasturlar bajarilgunigacha operatsiyalarni bajarish ko‘pincha qo‘llaniladi va
boshqaruvni boshqa o‘zaro bog‘liq dasturlarga beradi. O‘zaro bog‘liq dasturlar qayta
aktivlashtirilganida operator bajarishini yangilashdan boshlaydi.
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
247