17
Tayanch iboralar: Sxema, analiz va sintez , leksika, sintaksis, semantika, gen-
eratsiya, optimallashtirish, xatolar turi.
Ma’ruza bayoni.
Boshlang’ich (kirish) tilida yozilgan programmani mashina tiliga tarjima qi-
lish masalasi oddiy masala emas. Bu masala ketma-ket, bosqichlar bilan bajariladi.
Tarjima qilish jarayoni quyudagi umumiy sxema yordamida tasvirlanadi.
-
Rasm . Translyasiya sxemasi.
Birinchi va ikkinchi bosqichlarni bajarishdan keyin boshlang’ich
program-
madan abstrakt programmani hosil qilamiz. Sxemadan ma’lumki
tarjima jarayoni
asosan ichki (analiz va sintez) bosqichlardan iborat.
Birinchi bosqichda abstrakt
Boshlang’ich pro-
gram. satri
Leksik tahlil
Programmaning
leksik yoyilmasi
Generatsiya
Kontekst tahlil
Sintaksik tahlil
Programmaning
tahlil daraxti
Abstrkt programma
Natijaviy pro-
grammma satri
18
programma va ikkinchi bosqichda unga ekvivalent bo’lgan
natijaviy programma
hosil bo’ladi.
Leksik analiz jarayonida translyatr kirish satrini litera bo’yicha o’qib
leksemalarni hosil qiladi. Leksemalar jadvalda saqlanadi.
Har bir leksema
deskriptorga ega bo’lib,
deskriptor leksema turi va saqlash joyini belgilaydi.
Sintaksis tahlil natijasida leksemani til sintaksisiga jabob berish
yoki ber-
masligi aniqlanadi.
Masalan ,a+b*c ifodasi tahlildan keyin (a+(b*c)) ko’rinishda
keltiriladi. Buning natijasida programmaning ma’nosi yaqqol ko’rsatiladi. Tahliln-
ing bu bosqichi natijasi programmani tahlil daraxtidir.
Daraxt konstruksiya va
leksemalarni o’z ichiga oladi. Keying bosqichda esa bu daraxt maxsus algoritmlar
bilan aylanib o’tiladi va natijaviy programma satri hosil bo’ladi.
Generatsiya bosqichida natijaviy programma satrlar to’plami ko’rinishida
hosil qilinadi.
Masalan x:=b+(c-d)*(e+f) operatori berilgan bo’lsin.
Bu operatorni generatsiya
qilingandan keyin quyidagi matn hosil bo’ladi.
t1:=c-d ; t2:=e+f ; t3:=t1*t2 ; t4:=b+t3 ; x:=t4;
yoki shartli operator
agar x>y u holda a:=1 aks holda b:=2; generatsiyadan
keyin quyudagi
ko’rinishni oladi
p:=x>y;
Do'stlaringiz bilan baham: