7-маьруза Мавзу: Лексик ва синтаксис тахлил. Режа


лексема муваффақиятли ажратиб олинса, лексемалар жадвали ва идентификаторлар жадвалига ёзиб қўйилади. Алгоритм 1-қадамга ўтади ва сканер тўхтаб турган жойдан бошлаб яна навбатдаги белгиларнинг кириш потоки қараб чиқилади



Download 1,78 Mb.
bet4/4
Sana27.04.2022
Hajmi1,78 Mb.
#585361
1   2   3   4
Bog'liq
HKV19aAOirPR2V0n1zaNFFozp9q2gKzzasVJ554T

лексема муваффақиятли ажратиб олинса, лексемалар жадвали ва идентификаторлар жадвалига ёзиб қўйилади. Алгоритм 1-қадамга ўтади ва сканер тўхтаб турган жойдан бошлаб яна навбатдаги белгиларнинг кириш потоки қараб чиқилади.

  • лексема муваффақиятли ажратиб олинса, лексемалар жадвали ва идентификаторлар жадвалига ёзиб қўйилади. Алгоритм 1-қадамга ўтади ва сканер тўхтаб турган жойдан бошлаб яна навбатдаги белгиларнинг кириш потоки қараб чиқилади.
  • Лексемаларни муваффақиятсиз англаб олинадиган бўлса, хатолик хақида хабар жўнатилади ва кейинги амал компилятор реализациясига боғлиқ холда бажарилади, яъни ё сканерлаш тўхтатилади, ёки навбатдаги лексемани ўқиб олишга харакат бошланади.

Лексик тахлилчини турли жадвалларни ташкил этишини мисолда кўриб чиқамиз.

  • Лексик тахлилчини турли жадвалларни ташкил этишини мисолда кўриб чиқамиз.
  • Program authm;
  • Var
  • I, J, Sum: Integer;
  • Begin
  • Sum:=0;
  • For i:=1 to 100 do begin
  • Read(J);
  • Sum:=Sum+J;
  • end
  • Sum:=Sum div 100;
  • Write(Sum);
  • End

Терминал белгилар жадвали

  • Белги
  • Тури
  • Ажратувчи
  • Амал ишораси
  • Калит Суз
  • 1
  • ;
  • 1
  • 0
  • 0
  • 2
  • ,
  • 1
  • 0
  • 0
  • 3
  • :
  • 1
  • 0
  • 0
  • 4
  • пробел
  • 1
  • 0
  • 0
  • 5
  • :=
  • 0
  • 1
  • 0
  • 6
  • (
  • 1
  • 0
  • 0
  • 7
  • )
  • 1
  • 0
  • 0
  • 8
  • +
  • 0
  • 1
  • 0
  • 9
  • Div
  • 0
  • 1
  • 0
  • 10
  • Program
  • 0
  • 0
  • 1
  • 11
  • Var
  • 0
  • 0
  • 1
  • 12
  • Integer
  • 0
  • 0
  • 1
  • 13
  • Begin
  • 0
  • 0
  • 1
  • 14
  • For
  • 0
  • 0
  • 1
  • 15
  • To
  • 0
  • 0
  • 1
  • 16
  • Do
  • 0
  • 0
  • 1
  • 17
  • End
  • 0
  • 0
  • 1
  • 18
  • Read
  • 0
  • 0
  • 1
  • 19
  • Write
  • 0
  • 0
  • 1
  • 20
  • .
  • 1
  • 0
  • 0
  • 21
  • -
  • 0
  • 1
  • 0
  • 22
  • *
  • 0
  • 1
  • 0

Идентификаторлар жадвали

  • Исм
  • 1
  • Arithm
  • 2
  • I
  • 3
  • J
  • 4
  • Sum
  • Константалар жадвали
  • Константа
  • Асос
  • Тури
  • 1
  • 0
  • 10
  • Бутун
  • 2
  • 1
  • 10
  • Бутун
  • 3
  • 100
  • 10
  • Бутун

Чикувчи жадвал,яъни Лексемалар жадвали

  • Тури
  • № жадвалдаги раками
  • Лексемалар
  • 1
  • T
  • 10
  • Program
  • 2
  • T
  • 4
  • Пробел
  • 3
  • I
  • 1
  • Arithm
  • 4
  • T
  • 1
  • ;
  • 5
  • T
  • 11
  • Var
  • 6
  • T
  • 4
  • Пробел
  • 7
  • I
  • 2
  • I
  • 8
  • T
  • 2
  • ,
  • 9
  • I
  • 3
  • J
  • 10
  • T
  • 1
  • ;
  • 11

Синтаксис тахлилчи

  • Синтаксис тахлилчи – компилятор қисми бўлиб, кириш тилининг асосий синтиксис конструкциясини аниқлашга жавоб беради.
  • Синтиксис тахлилчисиз компилятор ишини ташкил қилиб бўлмайди.

Синтаксис тахлилчиларнинг асосий вазифаси

  • Асосий функциялар:
  • 1) асосий синтаксис конструкцияларни топиш ва ажратиш
  • 2) хар бир конструкцияни турини урнатиш ва тўғрилигини текшириш.
  • 3)матнни генерация килиниши учун кулай синтаксис конструкция куринишида тасвирлаш.

Синтаксис тахлилчи киришига лексик тахлилчидан лексемалар жадвали узатилади ва бу этапда лексемалар жадвали тадқиқ этилади, тилнинг синтаксисига биноан структурали шартларга жавоб бера олиши текширилади.

  • Синтаксис тахлилчи киришига лексик тахлилчидан лексемалар жадвали узатилади ва бу этапда лексемалар жадвали тадқиқ этилади, тилнинг синтаксисига биноан структурали шартларга жавоб бера олиши текширилади.
  • Синтаксис тахлилчи ишини ташкил этишда синтаксис разбор дарахтини (ёки чиқиш дарахти) қуриш қулай шароит яратишга олиб келади. Лекин бу хали компилятор мақсади эмас. Чиқиш дарахтида компиляторнинг кейинги иши учун керак бўлмаган ортиқча маълумотлар (нотерминал белгилар, қавслар, “;” лар ва х.к.) мавжуд.

Чиқиш дарахти

Амаллар дарахти

  • Синтаксис разбор дарахтини ортиқча маълумотларини йўқотган холда амаллар дарахтини хосил қиламиз. Бунинг чиқиш дарахтидаги нотерминал белгиларни ва кодни генерациялашда семантик маънога эга бўлмаган символларни ўчириб ташлаш керак. Семантик маънога эга бўлмаган символлар деганда қавслар хам бўлиши мумкин. Бунда қавслар амаллар кетма-кетлигини белгилайди ва дарахт қуриб олингач, уларга хожат қолмайди ва уларга хеч қандай объект код ёзилмайди.

Амаллар дарахти.

  • Синтаксис дарахтда барча чуккилар амалларга мос келади, барглар операндларга мос келади ва синтаксис дарахт барглари идентификаторлар жадвалининг ёзувлари билан богликдир.

Семантик разбор дарахтини амаллар дарахтига ўгириш алгоритми

  • 1. Агар дарахтда бошқа нотерминал
  • белгилар узеллари бўлмаса, у холда
  • алгоритм тугалланади. Акс холда 2 қа
  • дамга ўтиш
  • 2. нотерминал белги жойлашган энг
  • чап узелга ўтилади ва уни жорий узел
  • қилиб белгилаш ва 3 қадамга ўтиш
  • 3. агар жорий узел 1 тагина пастки
  • узелга эга бўлса, у холда бу жорий
  • узелни ўчириш керак ва унинг пастида
  • ги узелни жорийдан юқоридаги узелга
  • боғлаш ва 1 қадамга ўтиш, акс холда
  • 4 қадамга ўтиш

Семантик разбор дарахтини амаллар дарахтига ўгириш алгоритми

  • 4. Агар жорий узел пастида маъновий юкланишга эга бўлмаган терминал белги жойлашган узел (дарахт барги) мавжуд бўлса, бу барг узелни ўчириш керак ва 3 қадамга ўтиш, акс холда 5 қадамга ўтиш
  • 5. Агар жорий узел пастида битта амал белгисидан иборат терминал белги (барг) мавжуд бўлса ва бошқа узеллар операндлар бўлса, у холда амал белгиси жойланган барг узелни ўчириш ва жорий узелга шу амал белгисини ўрнатиш ва 1 қадамга ўтиш, акс холда 6 қадамга ўтиш

Семантик разбор дарахтини амаллар дарахтига ўгириш алгоритми

  • 6. Агар жорий узелнинг пастидаги узеллар ичида грамматиканинг нотерминал белгилари жойлашган узеллар мавжуд бўлса, у холда бу узулларнинг энг чапидагисини жорий узел қилиб белгилаш ва 3 қадамга ўтиш, акс холда алгоритмни тугаллаш.

Мисол

  • (а+a)*b Бу ерда
  • семантик маънога
  • эга бўлмаган белги
  • лар ()
  • а ва в лар операнд
  • лар

Амаллар дарахти

Синтаксис тахлилчиларни қуришни автоматлаштириш.

  • Синтаксис тахлилчини куриш учун иккита турли усуллардан фойдаланиш мумкин. Улардан бири – бу грамматик тахлилнинг барча мумкин булган грамматикалар учун керак буладиган универсал дастурини ёзишдир. Бу холда аник грамматикалар ушбу дастурга уни ишини бошкурувчи кандайдир структура куринишида берилади. Шунинг учун бундай дастур жадвалли-бошкарувчи дастур деб аталади.

Синтаксис тахлилчиларни қуришни автоматлаштириш.

  • Бошка усул – аник берилган тил учун махсус грамматик тахлил учун ишлаб чикилган дастурдир; бу холда уни синтаксиси аник коидалар буйича операторлар кетма-кетлигида ифодаланади, яъни дастурда. Тахлилнинг бундай амалга оширилишини дастурли –бошкарилувчи дастур деб атаймиз.

Синтаксис тахлилчиларни қуришни автоматлаштириш.

  • Ушбу усулларнинг хар бири узининг ютук ва камчиликларига эга. Аник бир тил учун трансляторни куришда универсал дастурга хос булган юкори эгилувчанлик ва параметрлаш талаб этилмайди. Берилган тил учун махсус ёзилган грамматик тахлилнинг дастури купинча фойдалирок булади ва у билан ишлаш осонрок кечади. Ихтиёрий холда хам берилган синтаксисни синтаксис граф куринишида ифодалаш фойдалидир. Бундай граф гапларни грамматик тахлил ишида бошкарув жараёнини ифодалайди.

Назорат саволлари

  • Тахлил муаммоси нима?
  • Чап томонли ва унг томонли Тахлил нима?
  • Нима учун асосий эътибор, жуда куп сонли чап ёки унг томонли булмаган Тахлиллар була туриб, чап ва унг томонли Тахлилларга каратилган?
  • Синтаксис дарахтни куришда Тахлил муаммосини кандай хал этиш мумкин?
  • Бир кийматли булмаган грамматикага таъриф беринг.
  • Детерминирован ва нодетерминирован Тахлил усулларини фаркини айтиб беринг

Назорат саволлари

  • Лексема нима?
  • Лексик тахлил килиш нима учун керак?
  • Лексик тахлилнинг хизматчи жадваллари нима учун керак?
  • Идентификаторлар жадвали нима?
  • Исмлар жадвали нима?
  • Терминаллар жадвали нима?
  • КЭШ манзиллаш нима?
  • Константалар жадвали нима?

Назорат саволлари

  • Жадвалли –бошкарувчи ва дастурли бошкарувчи синтаксис тахлилчиларнинг ютук ва камчиликларини айтинг.
  • Тахлилнинг кандай усулини максадга йуналтирилган деб хам аташ мумкин?

Фойдаланилган адабиётлар

  • Кревский И.Г., Селиверстов М.Н., Григорьева К.В. Формальные языки, грамматики и основы построения трансляторов: Учебное пособие/Под.ред А.М.Бершадского-Пенза: Изд-ство Пенз.гос.ун-та,2002 -124с.
  • Афанасьев А.Н. Формальные языки и грамматики: Учебная школа: УлГТУ, 1997. – 84 с
  • Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции -: Мир, 1979.-487с.
  • Компаниец Р.И. Системное программирование. Основы построения трансляторов. СПб.:Корна принт., 2000. -256 стр.
  • Дьяконов В.Ю. Системное программирование. Высш.шк.. 1990. -221 с.
  • WWW.codecrojekt.ru
  • WWW. master.ru
  • WWW.bdn_borland.com
  • http://microsofft.com

Download 1,78 Mb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish