82
Stek "oxirgi kirgan, birinchi chiqadi" (LIFO, Last In First Out) tamoyili
bo'yicha o'zaro ta'sir qiluvchi mantiqiy o'zaro bog'langan yacheykalar to'plamini
tashkil qiladi (3.4-rasm).
3.4-rasm. Stekli xotira
ishlash printsipi
Yuqori katak
stekning cho’qqisi
deb ataladi. Stekda ikkita operatsiya mavjud:
push
(ma'lumotlarni stekga surish) va
pop
(ma'lumotlarni stekdan chiqarish). Yozish
faqat stekning yuqori katakchasiga mumkin, shu bilan birga stekda saqlangan barcha
ma'lumotlar avvaliga bir pozitsiya pastga suriladi. O'qishga faqat stekning yuqori
qismidan ruxsat beriladi. Qabul qilingan ma'lumotlar stekdan chiqariladi va qolgan
tarkib
yuqoriga
suriladi.
Stekga
asoslangan
BTA
amalga
oshiriladigan
kompyuterlarda (ular odatda stek deb ataladi), operandlar qayta ishlashdan oldin stek
xotirasining eng yuqori ikkita joyiga joylashtiriladi. Amallar natijasi stekga suriladi.
(
a
+
b
) * (
c
+
d
)
−
e
ifodani hisoblash misolida stek mashinasining ishlash prinsipini
tushuntiramiz.
Stack yordamida
hisob-kitoblarni tavsiflashda, odatda, polyak matematigi J.
Lukashevich tomonidan taklif qilingan teskari Polsha yozuvi deb nomlanuvchi
matematik ifodalarni yozishning boshqa shakli qo'llaniladi. Uning o'ziga xosligi
shundaki, ifodada qavslar yo'q va amal belgisi operandlar orasida
joylashmaydi, balki
ulardan keyin keladi (postfiks shakli).
Yordamchi stek yordamida ifodaning an'anaviy yozuvini postfiksga aylantirish
qulay. Kompyuter stegi bilan adashtirmaslik uchun uni operatsiyalar
ketma-ketligi
deb ataymiz. Operatsiyalar ketma-ketligi bilan ishlash uchun original (an'anaviy)
ifoda yordamida operatsiyalarining ustuvorliklarini belgilaymiz (2.2-jadval). 2.2-
jadvalda nol minimalni, to'rt esa maksimal ustuvorlikni bildiradi.
3.2-jadval. Operatsiyalar ketma-ketligi bilan ishlashda operatsiyalarining
ustuvor yo'nalishlari
83
An'anaviy satr skanerlanganda, operatsiyalar ketma-ketligida duch kelgan
operatsiya belgilarini o'z ichiga oladi, ular keyinchalik (ma'lum qoidalarga muvofiq)
postfiks qatoriga o'tkaziladi. Teskari polyak yozuvidagi ifoda bilan qatorni
shakllantirish quyidagi algoritmga muvofiq amalga oshiriladi:
1. Ifoda bilan an'anaviy (kirish) qator chapdan o'ngga skanerlanadi.
2. Agar kirish qatorining keyingi belgisi operand bo'lsa, u darhol postfiks
qatoriga qayta yoziladi.
3. Chap qavs,
shuningdek, operatsiyalar ketma-ketligi bo'sh bo'lgan taqdirda
matematik operatsiya belgisi har doim operatsiyalar ketma-ketligiga kiritiladi.
4. Qidiruv paytida o'ng qavsga duch kelganda, operatsiyalar ketma-ketligining
yuqori qismidagi belgi operatsiyalar ketma-ketligidan chiqariladi va postfiks qatoriga
qo'yiladi. operatsiyalar ketma-ketligi tepasida chap qavs paydo bo'lguncha protsedura
takrorlanadi. Bu sodir bo'lganda, ikkala qavs bir-birini bekor qiladi va chap qavs STR
dan olib tashlanadi.
5. Agar operatsiyalar ketma-ketligi bo'sh bo'lsa yoki kirish satridagi operatsiya
belgisi
operatsiyalar
ketma-ketligining
yuqori
qismidagi
belgidan
yuqoriroq
ustunlikka ega bo'lsa, kirish satridagi operatsiya belgisi operatsiyalar ketma-ketligiga
suriladi.
6. Agar kirish satridagi belgining ustuvorligi operatsiyalar ketma-ketligining
yuqori qismidagi belgining ustuvorligiga teng yoki undan past bo‘lsa, operatsiyalar
ketma-ketligi tepasidagi belgi postfiks qatoriga suriladi. Operatsiyalar
ketma-
ketligitepasida yoki chap qavsda pastroq ustuvorlikka ega belgi paydo bo'lguncha
yoki operatsiyalar ketma-ketligi bo'sh bo'lguncha protsedura takrorlanadi. Shundan
so'ng, kirish qatoridagi belgi operandlar ketma-ketligiga kiritiladi.
7. Kirish satrining oxirgi belgisiga erishilganda, operatsiyalar ketma-ketligi
satrning mazmuni postfiks qatoriga ketma-ket suriladi.
(a + b) * (c + d) - e ifodasi uchun teskari polyak yozuvini olish jarayoni 6.3-
jadvalda keltirilgan.
84
3.3-jadval. (a + b) * (c + d)
−
e ifodasi uchun teskari polyak yozuvini
shakllantirish
Shunday qilib, polyak yozuvidagi yuqoridagi ifoda: ab + cd +*e – ko’rinishga
ega bo’ladi. Belgilanishning bu shakli operandlar va operatsiyalarni stekga yuklash
tartibini yagona tarzda belgilaydi (3.5-rasm).
3.5-rasm. Stek arxitekturali kompyuterda ab+cd+*e
−
ifodasini hisoblash
ketma-ketligi
BTA stekiga asoslangan HM ning mumkin bo'lgan
variantlaridan birining
asosiy tugunlari va axborot yo'llari 3.6-rasmda ko'rsatilgan.
3.6-rasm. Stakka asoslangan kompyuter arxitekturasi
Do'stlaringiz bilan baham: