Лаборатория иши 4 Объект кодини генерациялаш. Хоара триада ва тетрадаларига таржима қилиш



Download 18,85 Kb.
Sana12.05.2022
Hajmi18,85 Kb.
#602382

Лаборатория иши 4
Объект кодини генерациялаш. Хоара триада ва тетрадаларига таржима қилиш.
Ишдан максад: Ушбу тажриба ишида синтаксис разбор дарахти асосида дастурнинг объект кодини ташкил этувчи ва сунгра уни оптималлаштирувчи дастурни ёзиш талаб этилади. Кирувчи синтаксис разбор дарахти сифатида аввалги тажриба ишларида ташкил этилган дарахтдан фойдаланиш тавсия этилади.
Тажриба ишининг натижаси объект тилидаги берилган грамматика гаплари асосида курилган дастур булиши керак. Объект тили сифатида аник режимдаги Intel 80x86 туридаги процессорлар учун ассемблер тилидан фойдаланиш максадга мувофикдир.
Берилган дастурда иштирок этувчи барча, турларни узгартиришни талаб этмайдиган, идентификаторларни оддий скаляр узгарувчилар деб хисобланади.
Ушбу тажриба ишини икки боскичда ишлаб чикиш мумкин – триадалар руйхатини куриш ва ассемблер кодини генерациялаш.
Назарий кисм : Триадалар руйхатини куриш.
Триадалар руйхатини куришда, аввалги тажриба ишларида синтаксис тахлилчи томонидан курилган, чикиш дарахтини рекурсив утиши амалга оширилади. Бу холда куйидаги кушимча триадаларнинг турлари киритилади:
– Триада if (a,b), бу ерда a ва b операндлар албатта триадаларга курсаткич хисобланадилар. Ушбу триаданинг мазмуни куйидагичадир: агар a триаданинг мантикий ифода бўлган хисоблаш натижаси, нолга тенг булса, у холда b курсаткич буйичаутиш амалга оширилади. Акс холда руйхат буйича кейинги триадага кетма-кет утиш амалга оширилади.
– Триада jmp (1, a), бу ерда биринчи операнд маъновий юкламага эга эмас, иккинчи операнд эса триадага, кейинги боскичда шартсиз утишни амалга ошириши керак бўлган, курсаткични курсатади.
Кирувчи тилнинг семантик юкламага эга булмаган ифодалари янги триадаларни ташкил этмайдилар, лекин чикиш дарахтининг бундай тугунлари учун триадаларни куришни рекурсив чакириш функциялари амалга оширилади.
Колган ифодалар битта ёки бир нечта кетма-кет триадаларга бир кийматли айлантирилади.
Триадалар руйхатини куришни тугаши билан уни оптималлаш, яъни ортикча амалларни олиб ташлаш билан амалга оширилади. Бу холда яна бир кушимча триада туридан фойдаланилади – SAME (a, 0), бу ерда иккинчи операнд маънога эга эмас, биринчи операнд эса берилган ифодага узгартирилган триадага мос триадага курсатади.
Ассемблер кодини генерациялаш
Ассемблер кодини триадалар руйхати асосида генерациялаш кушимча айлантиришлар талаб этмайди, хар бир триада кандайдир ассемблер командалари кетма-кетлигига бир кийматли узгартирилиши мумкин. Бу холда асосий муаммо булиб микропроцессор регистрларини ассемблер кодини бажарилиш даврида тугри таксимлаш хисобланади.
Жорий триадага мос келувчи ассемблер командалари руйхатини куйишдан аввал аккумлятор кийматини узгартирилиш зарурияти текширилади. Агар у ерда аввалдан зарур киймат мавжуд булса, у холда унинг узгартирилиши ортикча хисобланади, акс холда, биринчи тугулувчи команда mov хисобланади. Худди шундай, амални бажарилиш натижаларини саклаш зарурияти тугилганда (агар у кейинчалик келувчи амалларда чакирилса), у регистрларнинг биронтасида саклаб куйилади.
Натижалар
Триадаларнинг руйхатларини генерацияси учун куйидаги модуллар Triad, TriListMaker ва TriListOptimizer жавоб берадилар. Triad синфи битта триадага мос келувчи структурани аниклайди. TriListMaker модули синтаксис чикиш дарахти асосида триадаларнинг бошлангич руйхатини генерациялайди, TriListOptimizer модул эса ортикча амалларни олиб ташлаш хисобига уни оптималлайди. Триадаларнинг оптималлаш тугалланиши биланок, натижавий руйхат AsmGenerator модулга жунатилади – бу модул эса ассемблер кодини генерациялашга жабоб беради. AsmGenerator модулнинг ишининг натижаси кирувчи матнли файл асосидаги натижавий объект коди хисобланади. Берилган амалларнинг натижалари экранга TriTab ва AsmTab модуллари оркали мос равишда чикарилади.
Тажриба ишининг бажарилиш тартиби (алгоритми):
1.Масаланинг куйилишини ифодалаш.
2.Масаланинг алгоритмини, блок чизмасини тузиш.
3.Дастурлаш тилида масала дастурини тузиш.
4.Хулоса.
5.Натижаларни когоз ёки монитор экранига чикариш.
6.Фойдаланилган адабиётлар.
7.Тажриба иши буйича хисобот тайёрлаш.
Хисоботга талаблар:
Хисоботда куйилган масаланинг берилиши, назарий кисми, ишнинг бажарилиши алгоритми, блок чизмаси, дастур матни, олинган натижалар ва фойдаланилган адабиётлар акс эттирилиши керак.
Синов саволлари:

  1. Генерация килинаётган колни ички ифодаланишида «туртлик» кандай булаклардан ташкил топади?

Кодни генерациялашда «туртлик»ни куллашнинг ютуклари нималарда куринади?
Download 18,85 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish