Компиляция босқичлари. Компилятор тузилиши


Download 151.43 Kb.
bet1/6
Sana18.06.2023
Hajmi151.43 Kb.
#1567440
  1   2   3   4   5   6
Bog'liq
Компиляция босқичлари


Компиляция босқичлари. Компилятор тузилиши

Олдин айтилганидек, трансляция жараёни икки босқичдан: тахлил босқичи ва натижавий дастурни ҳосил қилиш жараёнидан иборат1. Биз ушбу босқичларни компиляция жараёни мисолида кўриб чиқамиз ва компиялтор қисмлари билан танишамиз. Компиляция жараёнинг умумий схемаси қуйидаги 1-расмда келтирилган.



Расм. Компиляция схемаси
Ушбу схемага кўра анализ босқичи 3 та фазадан: лексик анализ, синтаксис анализи ва семантик анализ босқичларидан иборат. Анализ жараёнида дастурнинг ички (оралиқ) кўриниши, идентификаторлар жадвали шакллантирилади. Дастурда учраган хатоликлар анализ қилинади (яъни хатонинг тури аниқланади) ва локализация қилинади (яъни хато учраган модуль ва/ёки сатр аниқланади), сўнгра топилган хатоликлар хақида фойдаланувчига хабар берилади. Натижавий (объектли) кодни синтез (ҳосил) қилиш босқичи икки фазадан: код генерациясига тайёргарлик ва бевосита код генерацияси фазаларидан ташкил топган. Код генерацияси натижасида объектли код ҳосил қилинади.
Юқоридаги схемадан кўриш мумкинки, формал тиллар нуқтаи-назаридан компилятор трансляция жараёнида икки ҳил функцияни бажаради. Бошланғич тил учун компиляторнинг анализ қилувчи қисми фарқловчи вазифасини бажаради, яъни аниқроқ айтадиганда, агар дастур бошланғич тил қоидалари асосида тўғри ёзилган бўлса, у ҳолда таҳлил муваффақиятли якунланади ва дастурнинг ички (оралиқ) кўриниши ҳосил қилинади. Аксинча бўлса у ҳолда дастурдаги хатоликлар аниқлаштирилади ва бу ҳақда фойдаланувчига хабар берилади. Иккинчи томондан компиляторнинг натижавий тилдаги кодни синтез қилувчи қисми машина тилидаги кодни генерация (ҳосил) қилиш билан шуғулланади, ва бунда албатта у машина тилидаги тўғри дастурларни аниқловчи формал грамматика қоидаларига асосланади. Ушбу ҳосил қилинган дастурлар энди бевосита ижрочи (процессор) томонидан танилади.
Компиляция фазалари билан батафсил танишиб чиқайлик. Аввало шуни айтиш керакки, юқоридаги расмда тасвирланган схема – умумий манзара. Конкрет компиляторда ушбу схема анча ўзгартирилган шаклда учраши мумкин.
Лексик таҳлил. Лексик таҳлил давомида дастур матни чапдан ўнгга томон символма-символ кўриб чиқилади ва символлар лексемаларга бирлаштирилади. Эслатиб ўтамиз дастурнинг маънога эга энг кичик тузилмаси лексема деб аталади. Дастурда лексема сифатида калит сўзлар (маъноси олдиндан тайин қилинган идентификатор), идентификаторлар, сонлар, арифметик, мантиқий ёки бошқа турдаги амал белгилари келиши мумкин. Лексик таҳлил давомида компилятор лексемалар рўйхатини қуради. Ушбу рўйхатда лексемма, унинг тури ва бошқа информация сақланади. Шунингдек агар лексема идентификатор бўлса, у ҳолда бу лексема идентификаторлар рўйхатига ҳам қўшилади. Лексик таҳлилчининг ишлаш тартиби қуйидаги 2-расмда тасвирланган.


Download 151.43 Kb.

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




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