лексема муваффақиятли ажратиб олинса, лексемалар жадвали ва идентификаторлар жадвалига ёзиб қўйилади. Алгоритм 1-қадамга ўтади ва сканер тўхтаб турган жойдан бошлаб яна навбатдаги белгиларнинг кириш потоки қараб чиқилади.
лексема муваффақиятли ажратиб олинса, лексемалар жадвали ва идентификаторлар жадвалига ёзиб қўйилади. Алгоритм 1-қадамга ўтади ва сканер тўхтаб турган жойдан бошлаб яна навбатдаги белгиларнинг кириш потоки қараб чиқилади.
Лексемаларни муваффақиятсиз англаб олинадиган бўлса, хатолик хақида хабар жўнатилади ва кейинги амал компилятор реализациясига боғлиқ холда бажарилади, яъни ё сканерлаш тўхтатилади, ёки навбатдаги лексемани ўқиб олишга харакат бошланади.
Лексик тахлилчини турли жадвалларни ташкил этишини мисолда кўриб чиқамиз.
Лексик тахлилчини турли жадвалларни ташкил этишини мисолда кўриб чиқамиз.
2) хар бир конструкцияни турини урнатиш ва тўғрилигини текшириш.
3)матнни генерация килиниши учун кулай синтаксис конструкция куринишида тасвирлаш.
Синтаксис тахлилчи киришига лексик тахлилчидан лексемалар жадвали узатилади ва бу этапда лексемалар жадвали тадқиқ этилади, тилнинг синтаксисига биноан структурали шартларга жавоб бера олиши текширилади.
Синтаксис тахлилчи киришига лексик тахлилчидан лексемалар жадвали узатилади ва бу этапда лексемалар жадвали тадқиқ этилади, тилнинг синтаксисига биноан структурали шартларга жавоб бера олиши текширилади.
Синтаксис тахлилчи ишини ташкил этишда синтаксис разбор дарахтини (ёки чиқиш дарахти) қуриш қулай шароит яратишга олиб келади. Лекин бу хали компилятор мақсади эмас. Чиқиш дарахтида компиляторнинг кейинги иши учун керак бўлмаган ортиқча маълумотлар (нотерминал белгилар, қавслар, “;” лар ва х.к.) мавжуд.
Чиқиш дарахти
Амаллар дарахти
Синтаксис разбор дарахтини ортиқча маълумотларини йўқотган холда амаллар дарахтини хосил қиламиз. Бунинг чиқиш дарахтидаги нотерминал белгиларни ва кодни генерациялашда семантик маънога эга бўлмаган символларни ўчириб ташлаш керак. Семантик маънога эга бўлмаган символлар деганда қавслар хам бўлиши мумкин. Бунда қавслар амаллар кетма-кетлигини белгилайди ва дарахт қуриб олингач, уларга хожат қолмайди ва уларга хеч қандай объект код ёзилмайди.
Амаллар дарахти.
Синтаксис дарахтда барча чуккилар амалларга мос келади, барглар операндларга мос келади ва синтаксис дарахт барглари идентификаторлар жадвалининг ёзувлари билан богликдир.
4. Агар жорий узел пастида маъновий юкланишга эга бўлмаган терминал белги жойлашган узел (дарахт барги) мавжуд бўлса, бу барг узелни ўчириш керак ва 3 қадамга ўтиш, акс холда 5 қадамга ўтиш
5. Агар жорий узел пастида битта амал белгисидан иборат терминал белги (барг) мавжуд бўлса ва бошқа узеллар операндлар бўлса, у холда амал белгиси жойланган барг узелни ўчириш ва жорий узелга шу амал белгисини ўрнатиш ва 1 қадамга ўтиш, акс холда 6 қадамга ўтиш
6. Агар жорий узелнинг пастидаги узеллар ичида грамматиканинг нотерминал белгилари жойлашган узеллар мавжуд бўлса, у холда бу узулларнинг энг чапидагисини жорий узел қилиб белгилаш ва 3 қадамга ўтиш, акс холда алгоритмни тугаллаш.
Синтаксис тахлилчини куриш учун иккита турли усуллардан фойдаланиш мумкин. Улардан бири – бу грамматик тахлилнинг барча мумкин булган грамматикалар учун керак буладиган универсал дастурини ёзишдир. Бу холда аник грамматикалар ушбу дастурга уни ишини бошкурувчи кандайдир структура куринишида берилади. Шунинг учун бундай дастур жадвалли-бошкарувчи дастур деб аталади.
Синтаксис тахлилчиларни қуришни автоматлаштириш.
Бошка усул – аник берилган тил учун махсус грамматик тахлил учун ишлаб чикилган дастурдир; бу холда уни синтаксиси аник коидалар буйича операторлар кетма-кетлигида ифодаланади, яъни дастурда. Тахлилнинг бундай амалга оширилишини дастурли –бошкарилувчи дастур деб атаймиз.
Синтаксис тахлилчиларни қуришни автоматлаштириш.
Ушбу усулларнинг хар бири узининг ютук ва камчиликларига эга. Аник бир тил учун трансляторни куришда универсал дастурга хос булган юкори эгилувчанлик ва параметрлаш талаб этилмайди. Берилган тил учун махсус ёзилган грамматик тахлилнинг дастури купинча фойдалирок булади ва у билан ишлаш осонрок кечади. Ихтиёрий холда хам берилган синтаксисни синтаксис граф куринишида ифодалаш фойдалидир. Бундай граф гапларни грамматик тахлил ишида бошкарув жараёнини ифодалайди.
Назорат саволлари
Тахлил муаммоси нима?
Чап томонли ва унг томонли Тахлил нима?
Нима учун асосий эътибор, жуда куп сонли чап ёки унг томонли булмаган Тахлиллар була туриб, чап ва унг томонли Тахлилларга каратилган?
Синтаксис дарахтни куришда Тахлил муаммосини кандай хал этиш мумкин?
Бир кийматли булмаган грамматикага таъриф беринг.
Детерминирован ва нодетерминирован Тахлил усулларини фаркини айтиб беринг
Назорат саволлари
Лексема нима?
Лексик тахлил килиш нима учун керак?
Лексик тахлилнинг хизматчи жадваллари нима учун керак?
Идентификаторлар жадвали нима?
Исмлар жадвали нима?
Терминаллар жадвали нима?
КЭШ манзиллаш нима?
Константалар жадвали нима?
Назорат саволлари
Жадвалли –бошкарувчи ва дастурли бошкарувчи синтаксис тахлилчиларнинг ютук ва камчиликларини айтинг.
Тахлилнинг кандай усулини максадга йуналтирилган деб хам аташ мумкин?
Фойдаланилган адабиётлар
Кревский И.Г., Селиверстов М.Н., Григорьева К.В. Формальные языки, грамматики и основы построения трансляторов: Учебное пособие/Под.ред А.М.Бершадского-Пенза: Изд-ство Пенз.гос.ун-та,2002 -124с.
Афанасьев А.Н. Формальные языки и грамматики: Учебная школа: УлГТУ, 1997. – 84 с