Kompilyatsiya bosqichlari. Kompilyator tuzilishi

Kompilyatsiya bosqichlari. Kompilyator tuzilishi

O'quvchilarga / Informatika va AT
Kompilyatsiya bosqichlari. Kompilyator tuzilishi - rasmi

Material tavsifi

Kompilyatsiya bosqichlari. Kompilyator tuzilishi Oldin aytilganidek, translyatsiya jarayoni ikki bosqichdan: tahlil bosqichi va natijaviy dasturni hosil qilish jarayonidan iborat. Biz ushbu bosqichlarni kompilyatsiya jarayoni misolida ko'rib chiqamiz va kompiyaltor qismlari bilan tanishamiz. Kompilyatsiya jarayoning umumiy sxemasi quyidagi 1-rasmda keltirilgan. Rasm. Kompilyatsiya sxemasi Ushbu sxemaga ko'ra analiz bosqichi 3 ta fazadan: leksik analiz, sintaksis analizi va semantik analiz bosqichlaridan iborat. Analiz jarayonida dasturning ichki (oraliq) ko'rinishi, identifikatorlar jadvali shakllantiriladi. Dasturda uchragan xatoliklar analiz qilinadi (yani xatoning turi aniqlanadi) va lokalizatsiya qilinadi (yani xato uchragan modul vayoki satr aniqlanadi), so'ngra topilgan xatoliklar haqida foydalanuvchiga xabar beriladi. Natijaviy (obyektli) kodni sintez (hosil) qilish bosqichi ikki fazadan: kod generatsiyasiga tayyorgarlik va bevosita kod generatsiyasi fazalaridan tashkil topgan. Kod generatsiyasi natijasida obyektli kod hosil qilinadi. Yuqoridagi sxemadan ko'rish mumkinki, formal tillar nuqtai-nazaridan kompilyator translyatsiya jarayonida ikki hil funksiyani bajaradi. Boshlang'ich til uchun kompilyatorning analiz qiluvchi qismi farqlovchi vazifasini bajaradi, yani aniqroq aytadiganda, agar dastur boshlang'ich til qoidalari asosida to'g'ri yozilgan bo'lsa, u holda tahlil muvaffaqiyatli yakunlanadi va dasturning ichki (oraliq) ko'rinishi hosil qilinadi. Aksincha bo'lsa u holda dasturdagi xatoliklar aniqlashtiriladi va bu haqda foydalanuvchiga xabar beriladi. Ikkinchi tomondan kompilyatorning natijaviy tildagi kodni sintez qiluvchi qismi mashina tilidagi kodni generatsiya (hosil) qilish bilan shug'ullanadi, va bunda albatta u mashina tilidagi to'g'ri dasturlarni aniqlovchi formal grammatika qoidalariga asoslanadi. Ushbu hosil qilingan dasturlar endi bevosita ijrochi (protsessor) tomonidan taniladi. Kompilyatsiya fazalari bilan batafsil tanishib chiqaylik. Avvalo shuni aytish kerakki, yuqoridagi rasmda tasvirlangan sxema - umumiy manzara. Konkret kompilyatorda ushbu sxema ancha o'zgartirilgan shaklda uchrashi mumkin. Leksik tahlil. Leksik tahlil davomida dastur matni chapdan o'ngga tomon simvolma-simvol ko'rib chiqiladi va simvollar leksemalarga birlashtiriladi. Eslatib o'tamiz dasturning manoga ega eng kichik tuzilmasi leksema deb ataladi. Dasturda leksema sifatida kalit so'zlar (manosi oldindan tayin qilingan identifikator), identifikatorlar, sonlar, arifmetik, mantiqiy yoki boshqa turdagi amal belgilari kelishi mumkin. Leksik tahlil davomida kompilyator leksemalar ro'yxatini quradi. Ushbu ro'yxatda leksemma, uning turi va boshqa informatsiya saqlanadi. Shuningdek agar leksema identifikator bo'lsa, u holda bu leksema identifikatorlar ro'yxatiga ham qo'shiladi. Leksik tahlilchining ishlash tartibi quyidagi 2-rasmda tasvirlangan. Rasm 1. Leksik tahlilchining ishlash tartibi. Sintaksis tahlili. Sintaksis tahlili uchun boshlang'ich ma'lumot leksemmalar ro'yxati bo'lib hisoblanadi. Sintaksis tahlili davomida kompilyator qiladigan ish - leksemmalar ro'yxati asosida tilning to'g'ri sintaksis konstruksiyasi, masalan biror operator, ifoda, ta'riflash konstruksiyasi va hakozolar to'g'ri qurilganligini tekshirishdan iborat. Masalan quyidagi leksemmalar ketma-ketligini ko'rib chiqaylik: for i:=1 do 5 to end begin; Leksik tahlilchi ushbu zanjirda hech qanday xatolikni payqamaydi, chunki barcha leksemalar Pascal ...


Ochish
Joylangan
Fayl formati zip → doc
Fayl hajmi 148.77 KB
Ko'rishlar soni 121 marta
Ko'chirishlar soni 10 marta
O'zgartirgan san'a: 29.03.2025 | 00:53 Arxiv ichida: doc
Joylangan
Fayl formati zip → doc
Fayl hajmi 148.77 KB
Ko'rishlar soni 121 marta
Ko'chirishlar soni 10 marta
O'zgartirish kiritilgan: Arxiv ichida: doc
Tepaga