к - Operatorlar, operatorlar bloklari, protseduralar va funktsiyalarning tavsiflari tahlil qilingan to'liq sintaktik tuzilmalar sifatida ishlaydi; o'ziga xos kompozitsiya kiritish tiliga va kompilyatorning bajarilishiga bog'liq. Kiritilgan tilning har bir bunday sintaksik konstruksiyasining ma’nosi (semantikasi) uning turiga qarab belgilanishi mumkin, turi esa kirish tili grammatikasi asosida tahlil qiluvchi tomonidan aniqlanadi.
к - Sintaktik konstruksiya turlariga sikl gaplari, shartli tanlash gaplari va hokazolar misol bo‘la oladi. Sintaktik konstruksiyalarning bir xil turlari turli dasturlash tillariga xos bo‘lsa-da, ular sintaksis jihatidan bir-biridan farq qiladi (bu til grammatikasi bilan belgilanadi), lekin shunga o‘xshash xususiyatga ega. sm (bu semantika bilan belgilanadi). Sintaktik qurilish turiga qarab, berilgan sintaktik konstruktsiyaga mos keladigan dastur kodi hosil bo'ladi.
к - Kompilyator kirish tilining sintaksik konstruktsiyasi uchun natijada olingan dastur kodini yaratishi uchun ko'pincha sintaktik boshqariladigan tarjima yoki SU tarjimasi deb ataladigan usul qo'llaniladi. SU-tarjima - bu tahlil qilish natijalari asosida olingan dastur kodini yaratishning yangi usuli. Usulning mohiyatini tushunish qulayligi uchun biz tahlil qilish natijasi tahlil qilish daraxti (yoki amallar daraxti) shaklida taqdim etilgan deb taxmin qilishimiz mumkin, ammo bu har doim ham haqiqiy kompilyatorlarda bo'lmaydi.
к - Umuman olganda, SU-tarjima sxemalari quyidagi harakatlarni o'z ichiga olishi mumkin:
- • chiqish ma'lumotlar oqimida mashina kodlari yoki yig'ish ko'rsatmalarini joylashtirish kompilyatorning ish (chiqish) natijasini ifodalovchi ra;
- • foydalanuvchiga xato va ogohlantirish xabarlarini ko'rsatish niyah (bu oqimdan boshqa chiqish oqimiga joylashtirilishi kerak olingan dasturning buyruqlari uchun ishlatiladi);
- □ ba'zi harakatlarni ko'rsatuvchi buyruqlarni yaratish va bajarish kompilyatorning o'zi tomonidan bajarilishi kerak (masalan, operatsiyalar identifikatorlar jadvalida joylashtirilgan ma'lumotlar bo'yicha to'ldiriladi).
Do'stlaringiz bilan baham: |