Ma’ruza: Assemblerning ikkita o’tishli translyatori Reja


Download 98.36 Kb.
bet4/8
Sana10.02.2023
Hajmi98.36 Kb.
#1186799
1   2   3   4   5   6   7   8
Bog'liq
maruza 5 (1)

Kamchiliklari:
l.Oldinga o’tishni tashkil etishdagi muammolar. Masalan: quyidagi gapni qarasak,
GOTO metka;
«metka» hali dastur matnida uchramaganligi uchun ba'zi qiyinchiliklar yuzaga kelishi mumkin.
2.Tashkil etilayotgan ob'ekt dastumi optimal emasligi. Masalan, agar quyidagicha matn uchrasa:
A=(V+S);
R
=(V+S)+(E+M); kompilyator dastumi quyidagi ko’rinishga keltirib, undan foydaliroq ob'ekt kodini tashkil etishi mumkin edi.
25-rasm. Bir o’tishli translyator chizma ko’rinishi.

A=(V+S);
R=A+(E+M);


Lekin bir o’tishli kompilyator juda ko’p kerakli ma'lumotni matnda (E+M) formula uchraguniga qadar yo’qotishi mumkin.
3. Bir o’tishli kompilyator (25-rasm) xotirada to’liq joylashganligi sababli, uni amalga oshirish xotira zahiralariga yuqori talablami qo’yadi.
Ob'ekt dastur bajarilishi unumdorligini oshirish uchun kompilyasiya jarayoniga optimizasiya bosqichini qo’shish mumkin. Optimallash bloki uch o’tishli kompilyatorga sintaksis tahlilchi va kod generator! o’rtasiga oson joylashtiriladi. Bu bosqichda postfiks fayl kiruvchi berilganlar sifatida foydalaniladi va yangilangan xarakteristikali dasturga ekvivalent postfiks yozuvli yangi fayl tashkil etiladi. Optimallash bloki o’zining chiquvchi natijalarini postfiks fayl formatida yozganligi sababli, kodlar generatoriga ulami o’zgartirish shart bo’lmaydi. Amaliyotda optimallash imkoniyati foydalanuvchi hohishiga ko’ra amalga oshiriladi, agar kompilyasiya vaqti juda ko’p vaqt olmasin desak, u holda optimallash blokini bajarmaymiz, agar bajarilish tezligi yuqori bo’lgan dastur kerak bo’Isa, u holda sintaksis tahlilchi ishidan so’ng optimallash bloke chaqiriladi.
Yuqorida ko’rib o’tilgan ikki variantdan oraliq holatni egallovchi ikki o’tishli kompilyatomi qarab chiqamiz. Bu holda sintaksis tahlilchi skanerlash blokini chaqiradi, leksemalami ketma-ket o’qiydi va dastumi postfiks yozuvlar faylini tashkil etadi. Kod generatori ushbu faylni o’qiydi va dastumi ob'ekt kodini tashkil etadi. Bunday strukturaga nisbatan kam bajarilish vaqti sarf bo’Iadi, chunki dastur ikki marta o’qiladi (boshlang’ich matn va postfiks yozuvlar fayli). Bu holatda oldinga metka bo’yicha o’tish muammosi hal etiladi, chunki ushbu metka birinchi o’tish bosqichida kod generatorini chaqirishdan awal o’qiladi. Bunday kompilyatorga zaruriyat bo’lganda optimallash blokini qo’shish oson amalga oshiriladi. Barcha ko’rib o’tilgan kompilyatorlar ma'lum ish sharoitlarida o’zining yutuq va kamchiliklariga ega.
Nazorat savollari
1. Translyator tushunchasiga t a 'rif bering.
2. Translyator va kompilyatoming farqini ayting.
3. Interpretatoming yutuqlari va kamchiliklari haqida ma'Iumot bering.
4. Kompilyatoming yutuqlari va kamchiliklari haqida ma'Iumot bering.
5. Assember tilining translyatorlari haqida ma'Iumot bering.
6. Nima sababdan Assember tili quyi daraja tili bo’lib hisoblanadi?
7. Assembler tilining qanday xususiyatlarini bilasiz?
8. Makrokomandalardan foydalanish nima uchun kerak?
9. Makrogeneratoming vazifasi nimalardan iborat?
10. Makro aniqlashlar nima?
11. Makrochaqiriqlar nima?
12. Makrokengaytma tushunchasiga ta'rif bering.
13. O’tish tushunchasi haqida ma'Iumot bering.
14. Bir-ikki va uch o’tishli kompilyatorlaming yutuqlari nimalarda ko’rinadi?
15. Kompilyator va interpretatoming farqi nimada?
16. Bir-ikki va uch o’tishli kompilyatorlaming kamchiliklari nimalarda ko’rinadi?



Download 98.36 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




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