157
emas, balki T.0 mashina tilidagi dasturni bajaradi. Bu texnologiya
translatsiya
deb
ataladi.
Ikkinchi usul
. T.0 mashina tilida
shunday dastur tuziladiki, u T.1 tilida
yozilgan dasturni boshlang‘ich dastur deb qabul qiladi va bu tildagi har bir buyruqni
T.0 mashina tilidagi ekvivalent buyruqlar majmuasi yordamida bajaradi. Bu
texnologiya T.0 tilida yangi dastur yaratilishini talab qilmaydi.
Bu usul
interpretatsiya
deb ataladi. Interpretatsiyani amalga oshiruvchi dastur interpretator
deb ataladi.
Translyasiya va interpretatsiya bir - biriga o‘xshash. Har ikkala uslublarni
qo‘llagan xolda ham kompyuter T.0 tildagi T.1 til buyruqlariga ekvivalent bo‘lgan
buyruqlar majmuasini bajaradi. Farq shundaki translyasiya jarayonida T.1
tildagi
dastur T.0 tildagi dasturga almashtiriladi. T.1 tildagi dastur esa unitiladi. T.0 tilidagi
yangi dastur kompyuter xotirasiga joylashadi va bajariladi.
Inepretatsiyada esa T.1 dagi har bir buyruq T.0 ga qayta kodlashtiriladi va
darxol bajariladi. Bu usulning translyasiyadan farqi T.0
da yangi dastur
yaratilmaydi, balki buyruqlar ketma - ket qayta kodlashtiriladi va bajarilishi amalga
oshadi. Har ikkala usul ham va ularning kombinatsiyasi ham qo‘llaniladi.
Odatda, translyasiya yoki interpretatsiyani o‘ylashdan ko‘ra, mashina tili T.1
bo‘lgan gipotetik kompyuterning yoki virtual mashinaning mavjudligini faraz qilish
qulayroqdir. Bunday virtual mashina M.1 deb, T.0 tilli virtual mashinani esa M.0
deb ataymiz.
Agar M.1 virtual mashinani katta xarajatlarsiz konstruksiyalash mumkin
bo‘lsa, u xolda M.0 virtual mashina va u ishlatadigan T.0 tilga extiyoj bo‘lmas edi.
Dasturlash faqat T.1 til orqali amalga oshirilishi mumkin bo‘lar edi. Virtual mashina
bir muncha qimmat bo‘lganda ham insonlar unga dastur yozgan bo‘lar edi. Bu dastur
T.0 tilida yozilgan dastur yordamida interpretatsiya
yoki translyasiya qilinishi
mumkin. Boshqacha aytganda virtual mashina uchun, u haqiqatda mavjud deb dastur
yozish mumkin.
158
Interpretatsiya va translyasiya maqsadga muvofiq bo‘lishi uchun T.0 va T.1
tillar bir biridan keskin farqlanmasligi kerak. Bu degani T.1 til T.0 tilga nisbatan bir
muncha yaxshiroq bo‘ladi, lekin undan ko‘p farqlanmaydi.
Bu bir tomondan dasturlashni inson uchun qulayroq shaklga keltirish, kkinchi
tomondan dasturni M.0 bajarilishini ta’minlash muammosini xosil qiladi. Buning
echimini ko‘p sathli tillar ierarxiyasini xosil qilish orqali xal qilish mumkin.
Dasturlashni insonga qulaylashtirish uchun endi T.2 tilni yaratish kerak. T.2
tilda ishlaydigan virtual mashina endi M.2 bo‘ladi. T.2 til T.1 ga nisbatan insonga
qulaylik jihatidan ancha yaqinroq bo‘ladi. Lekin mashina bari bir T.0 tilida ishlaydi.
Bunda esa qo‘yidagi almashtirish jarayoni T.2 T.1 T.0 amalga oshishi zarur bo‘ladi.
Biri ikkinchisidan insonga qulayroq bo‘lgan tillarni
yaratish jarayoni eng
maqbul tilni xosil qilgunimizcha davom etishi mumkin. Har bir bunday til o‘zidan
oldingi tilni asos sifatida ishlatadi. SHuning uchun kompyuterni bir necha virtual
mashinalar sathlaridan iborat deb qarashimiz mumkin. Bu tasavvur 1
rasmda
keltirilgan edi.