1-MA’RUZA
Ko’p sathli kompyuterni tashkilash
Reja:
1.1. Kirish
1.2. Tillar, darajalar va virtual mashinalar
1.3. Zamonaviy ko’p sathli mashinalar
1.4. Ko’p sathli mashinalarning rivojlanishi
Kalit so’zlar: virtual mashinalar, sathli mashinalar, mashina tili
1.1.Kirish
Raqamli kompyuter - bu unga berilgan buyruqlarni bajarish orqali
muammolarni hal qila oladigan mashina. Muayyan masalaning
yechimini tavsiflovchi buyruqlar ketma-ketligi dastur deb nomlanadi.
Har bir kompyuterning elektron sxemalari cheklangan oddiy buyruqlar
to’plamini taniydi (
raspoznavat
) va uni bajarishi mumkin. Amalga
oshirishdan oldin barcha dasturlar odatda oddiy murakkab bo’lmagan
buyruqlar ketma-ketligiga aylantirilishi kerak, masalan:
ikkita raqam qo’shing
raqam nolga teng emasligini tekshiring;
ma’lumotlar blokini kompyuter xotirasining bir qismidan
boshqasiga nusxalash.
Ushbu boshlang’ich sodda buyruqlar to’plami odamlar kompyuter
bilan aloqa qila oladigan tilni tashkil qiladi. Bunday tilga mashina tili
deyiladi. Yangi kompyuterni yaratishda ushbu kompyuterning mashina
tiliga qaysi buyruqlarni kiritishni hal qilishi kerak. Bu kompyuterni
qanday maqsada ishlatilshiga va u hal qilishi kerak bo’lgan vazifalarga
bog’liq. Kompyuterni loyihalashda murakkabliklarni oldini olish va
kerakli elektronikaning narxini pasaytirish uchun mashina buyruqlarini
iloji boricha sodda bo’lishiga harakat qilish odatiy holdir. Mashina
tillarining aksariyati juda sodda, bu ularga yozishni qiyin va zerikarli
qiladi.
Vaqt o’tishi bilan amalga oshirilgan bu oddiy kuzatuv, har biri
pastki mavhumlik (absraktsiya) sathi ustiga qurilgan bir qator
mavhumlashtirishlarni yaratilishiga olib keldi. SHunday qilib, qanday
qilib murakkabliklarni yengish mumkin va dizayn jarayoni muntazam va
tartibli bo’lishi mumkin. Biz ushbu yondashuvni ko’p bosqichli
hisoblash deb ataymiz.
1.2 Tillar, sathlar va virtual mashinalar
Odamlar uchun qulay bo’lgan narsalar va kompyuterlar , bajara oladigan
narsalar o’rtasida katta farq bor. Odamlar X-ni qilishni xohlashadi,
ammo kompyuterlar faqat Yni bajarishi mumkin. Bu muammoni keltirib
chiqaradi. Ushbu ma’ruzaning maqsadi bu muammoni qanday hal
qilishni tushuntirishdir.
Yuqoridagi muammoni ikki usul bilan hal qilish mumkin. Ikkala
usul ham yangi dasturlarni ishlab chiqishni o’z ichiga oladi. Ushbu
yangi buyruqlar to’plami biz T1 deb ataydigan tilni yuzaga keltiradi.
O’rnatilgan mashina buyruqlari ham tilni hosil qiladi va biz uni T0 deb
nomlaymiz. Kompyuter faqat T0 dasturiy tilida yozilgan dasturlarni
bajara oladi. Muammoni hal qilishning ikkita usuli, kompyuter T1 tilida
yozilgan dasturlarni qanday bajarishi bilan farq qiladi - lekin,
kompyuterda faqat T0 mashina tili mavjud.
T1 tilida yozilgan dasturni amalga oshirishning birinchi usuli har
bir buyruqni T0 tilidagi mos keladigan buyruqlar to’plami bilan
almashtirishni anglatadi.
Bunday holda, kompyuter T1da yozilgan eski dastur o’rniga T0
bilan yozilgan yangi dasturni bajaradi. Ushbu texnologiya translyatsiya
deb nomlanadi.
Ikkinchi usul T0 tilida kirish ma’lumotlari sifatida T1 tilida
yozilgan dasturlarni oladigan dasturni yaratish iborat. Bunday holda, T1
tilining har bir buyrug’i navbati bilan qayta ishlanadi, shundan so’ng T0
tilining mos keladigan buyruqlar to’plami darhol bajariladi. Ushbu
texnologiya T0 dasturida yangi dasturni tuzishni talab qilmaydi. U
interpretatsiya deb ataladi va uni bajaradigan dastur interpretator deb
ataladi.
Translyatsiya va interpretatsiya o’rtasida ko’p o’xshashliklar
mavjud. Ikkala holatda ham, kompyuter T1 buyruqlariga ekvivalent
bo’lgan T0 buyruqlar to’plamini bajaradi. Faqatgina farq shundaki,
translyatsiya paytida T1 dasturi T0 dasturiga aylantiriladi, T1 dasturi
o’chiriladi va yangi T0 dasturi kompyuter xotirasiga yuklanadi va keyin
bajariladi. Ishlash jarayonida T0 tilida yozilgan genertsiya qilingan
dastur kompyuterning ishlashini boshqaradi.
Interpretatsiyada, T1-dagi har bir buyruq T0-ga qayta yoziladi va
darhol bajariladi. Bunda, translyatsiya qilingan dastur yaratilmaydi.
Kompyuterning
ishlashini,
T1-dagi
dastur
"xom"
kirish
ma’lumotlaridan boshqa narsa bo’lmagan interpretator tomonidan
boshqariladi. Ikkala yondashuv ham birgalikda, ham alohida keng
miqiyosda ishlatiladi.
Biroq, translyatsiya va interpretatsiya qilish haqida o’ylashdan
ko’ra, mashinaning tili T1 bo’lgan gipotetik kompyuter yoki virtual
mashinaning mavjudligini tasavvur qilish ancha osonroq. SHunday
virtual mashinani M1, va T0 tili bilan ishlaydigan virtual mashinani -
M0 deb nomlaymiz. Agar bunday M1 mashinasi katta xarajatlarsiz
qurilishi mumkin bo’lsa, T0 tilini va T0 tilida dasturlarni bajaradigan
mashina kerak bo’lmaydi. Ya’ni, dasturni T1 tilida yozish mumkin va
kompyuter ularni darhol amalga oshirar edi. Virtual mashinani yaratish
imkoni bo’lmasligi mumkin (bu juda qimmat yoki uni ishlab chiqarish
qiyinligi sababli), lekin odamlar unga yo’naltirilgan dasturlarni
yozishlari mumkin. Ushbu dasturlar T0 tilida yozilgan dastur tomonidan
translyatsiya yoki interpretatsiya qilinadi, uni o’zi mavjud kompyuter
tomonidan bajarilishi mumkin. Boshqacha qilib aytganda, virtual
mashinalar uchun dasturlarni yozishingiz mumkin, xuddi bu mashinalar
real mavjud.
T0 va T1 tillari bir-biridan unchalik farq qilmasa, translyatsiya va
interprentatsiya qilish tavsiya etiladi. Ko’pincha bu T1 tili T2 dan
yaxshiroq bo’lsa ham, hali ham idealdan uzoq ekanligini anglatadi.
Ehtimol, bu T1 tilini yaratishning asl maqsadi - dasturchini kompyuter
tushunadigan, ammo odamlar uchun moslashtirilmagan tilda dasturlarni
yozish og’irligidan xalos qilish nuqtai nazaridan biroz tushkunlik
bo’lishi mumkin. Biroq, vaziyat unchalik umidsiz emas.
Muammoning aniq yechimi T1 ga qaraganda ko’proq odamga
yo’naltirilgan va kompyuterga nisbatan kamroq yo’naltirilgan boshqa
buyruqlar to’plamini yaratishdir. Ushbu uchinchi buyruqlar to’plami biz
T2 deb nomlanadigan tilni va mos keladigan virtual mashinani, M2 ni
hosil qiladi. Biror dasturchi T2 tilida dasturlarni yozishi mumkin, go’yo
T2 mashina tili bilan ishlash uchun virtual mashina mavjud. Bunday
dasturlar T1 tiliga translyatsiya qilinishi yoki T1 tilida yozilgan
interpretator tomonidan bajarilishi mumkin.
Turli tillarning ixtiro qilinishi, har biriga oxirgisidan ham ko’proq
biz uchun mos bo’lgan tilga kelgunimizcha davom etishi mumkin. Har
bir bunday til o’zidan oldingisidan asos sifatida foydalanadi, shuning
uchun biz kompyuterni 1.1. rasmda tasirlangan sathlar qatori deb
hisoblashimiz mumkin. Ierarxik tuzilmaning eng pastki qismidagi til eng
sodda, eng yuqorisidagi esa eng murakkab.
Do'stlaringiz bilan baham: |