ЎЗБЕКИСТОН РЕСПУБЛИКАСИ АХБОРОТ ТЕХНОЛОГИЯЛАРИ ВА КОММУНИКАЦИЯЛАРИНИ РИВОЖЛАНТИРИШ ВАЗИРЛИГИ
МУҲАММАД АЛ-ХОРАЗМИЙ НОМИДАГИ
ТОШКЕНТ АХБОРОТ ТЕХНОЛОГИЯЛАРИ УНИВЕРСИТЕТИ
ТИЗИМЛИ ДАСТУРЛАШ
ФАНИДАН
4 - ТАЖРИБА ИШИ
Мавзу: ДАСТУРНИ ОБЪЕКТ КОДИНИ ГЕНЕРАЦИЯЛАШ ВА ОПТИМАЛЛАШ
Бажарди: ______________________
Қабул қилди: Шарипов Б.А.
ТОШКЕНТ - 2022
4- тажриба иши.
Мавзу: Дастурни объект кодини генерациялаш ва оптималлаш.
Ишдан максад: Ушбу тажриба ишида синтаксис разбор дарахти асосида дастурнинг объект кодини ташкил этувчи ва сунгра уни оптималлаштирувчи дастурни ёзиш талаб этилади. Кирувчи синтаксис разбор дарахти сифатида аввалги тажриба ишларида ташкил этилган дарахтдан фойдаланиш тавсия этилади.
Тажриба ишининг натижаси объект тилидаги берилган грамматика гаплари асосида курилган дастур булиши керак. Объект тили сифатида аник режимдаги Intel 80x86 туридаги процессорлар учун ассемблер тилидан фойдаланиш максадга мувофикдир.
Берилган дастурда иштирок этувчи барча, турларни узгартиришни талаб этмайдиган, идентификаторларни оддий скаляр узгарувчилар деб хисобланади.
Ушбу тажриба ишини икки боскичда ишлаб чикиш мумкин – триадалар руйхатини куриш ва ассемблер кодини генерациялаш.
Назарий кисм :
Триадалар руйхатини куриш.
Триадалар руйхатини куришда, аввалги тажриба ишларида синтаксис тахлилчи томонидан курилган, чикиш дарахтини рекурсив утиши амалга оширилади. Бу холда куйидаги кушимча триадаларнинг турлари киритилади:
– Триада if (a,b), бу ерда a ва b операндлар албатта триадаларга курсаткич хисобланадилар. Ушбу триаданинг мазмуни куйидагичадир: агар a триаданинг мантикий ифода булган хисоблаш натижаси, нолга тенг булса, у холда b курсаткич буйичаутиш амалга оширилади. Акс холда руйхат буйича кейинги триадага кетма-кет утиш амалга оширилади.
– Триада jmp (1, a), бу ерда биринчи операнд маъновий юкламага эга эмас, иккинчи операнд эса триадага, кейинги боскичда шартсиз утишни амалга ошириши керак булган, курсаткични курсатади.
Кирувчи тилнинг семантик юкламага эга булмаган ифодалари янги триадаларни ташкил этмайдилар, лекин чикиш дарахтининг бундай тугунлари учун триадаларни куришни рекурсив чакириш функциялари амалга оширилади.
Колган ифодалар битта ёки бир нечта кетма-кет триадаларга бир кийматли айлантирилади.
Триадалар руйхатини куришни тугаши билан уни оптималлаш, яъни ортикча амалларни олиб ташлаш билан амалга оширилади. Бу холда яна бир кушимча триада туридан фойдаланилади – SAME (a, 0), бу ерда иккинчи операнд маънога эга эмас, биринчи операнд эса берилган ифодага узгартирилган триадага мос триадага курсатади.
Do'stlaringiz bilan baham: |