Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






LL(1) - грамматикасы. 2 страница




Мұндай процессордың іс-әректін шығару ағашының граматикасының ережесінде интерпретациялауға болады.Бұл мына мағынада беріледі.Мұндай процессорды синтаксистік анализатор атайды.Ал олардың жұмысын синтаксистік трансляциялық басқару дейді.

Қарастырылған анализатор еңгізу тізбегінде солдан оңға қарай қарастырылады.Ол екі стратегияның біреуін қолданады:шығарылмаған және еңгізілген.Шығарылмаған анализаторды граматикалық ережесі жоғарыдан төменге қарай және жоғарғы ережелер төменгіге қарағанда бұрын орындалады.Еңгізілген анализаторда төменгі ережелер жоғарыға қарағанда бірінші орындалады.

Талдаудың анықтамасы.

WÎ L(G) кейбір КС-грамматикасы үшін G анализденген немесе талданған дейік,егер оның берілген грамматикасында шығару ағашы болса ғана.

Әдетте компилятор синтаксистік анализді МП-автоматының модельдеу жолымен орындайды.Ол еңгізу тізбегін анализдейді.МП-автоматы еңгізу тізбегінде сол жаққа шығаруды және оң жаққа талдауды орындайды.Сол және оң талдаулар грамматика ережесінде мына түрінде беріледі {1,2,3,...,р}.

Мысал1.

I*(i+i) ÎL (G.) осы тізбектің анализін қарастырайық.Нөмірленгеннен кейін G. граммматика ережесі келесі түрде болады:

(1) E®E+T (4) T®P

(2) E®T (5) P®i

(3) T®T*P (6) P®(E)

 

i*(i+i) тізбегінің сол шығарылуын қарастырайық:

EÞ(2) TÞ(3) T*PÞ(4) P*PÞ(5) i*PÞ(6) i*(E)Þ(1) i*(E+T)Þ(2)

I*(T+T)Þ(4) i*(P+T)Þ(5) i*(i+T)Þ(4) i*(i+P)Þ(5) i(i+i).

Анықтама бойынша тізбектің сол талдауы сол жақ шығарылуда грамматика ережелерінің нөмерлерін кезекпен орындалуды қамтамассыз етеді.і*(і+і)-бұл тізбектің талдауы кезекпен 23456124545 орындалады.

І*(і+і) тізбектің оң шығарылуын құрайық:

EÞ(2) TÞ(3) T*PÞ(6) T*(E)Þ(1) T*(E+T)Þ(4) T*(E+P)Þ(5)

T*(E+i)Þ(2) T*(T*i)Þ(4) T*(P*i)Þ(5) T*(i+i)Þ(4)

P*(i+i)Þ(5) i*(i+i).

Тізбектің оң талдауы –бұл ережелердің кезектің нөмірленуі.Сондықтан тізбктің і*(і+і)- оң талдауынан кейін кезекпен 54542541632 орындалады.

Сол және оң тізбектің і*(і+і) –талдауынан өзгереді.1.1 суретіндегі G грамматикасында көрсетілген.Шығару ағашы суретте деформирациялаған. Осыған орай грамматика ережелерінің қолданылуын кезекпен көреміз.1.1 суретінде а) ағаштың сонынан шығару ережесінде қолданылады,ал б) суретінде оңынан қолданылады.

суреті жақсы көрсетілген. Онда сол талдау сол шығарумен сәйкес келеді.Ал оң талдау оң шығарумен сәйкес келеді.

Шығарылмаған талдау.

Шарт бойынша КС-грамматикасының синтаксистік анализін орындалуын қарастырамыз.Анализденген тізбек солдан оңға қарай қарастырайық.Егер бізге сол талдау p тізбегінде vÎL(G) онда G КС грамматикасында немесе мүмкіндіктермен ағаштар талдауын құрады.Ағаштың тамырын негізгі грамматикасының S символымен белгілейік.Егер p=і1,і2... іп болса, онда і1 ереженің нөмерін анықтайды.Егер ереже бойынша S®Х1 Х2...Хі-1 Хі Хі+1...Хк болады.S нүктесі х1,х2,...хі-1,хі,хі+1,...,хк символымен белгіленген.Егер хі-терминалды емес бірінші сол жақтағы тізбектегі х1,х2,хн болса, онда бірінші (і-1) символындағы тізбек w символы х1, х2,...,хі-1 болады.Келесі шығару ережесі грамматикада і2 нөмерімен белгіленген.Мысалға, ереже бойынша Хі®У1 У2...У1 болса, онда оның құрылымы ағаштар тізбегінде w болады.Оны біз 1.2суретіндегі U1,U2,...,U1 символымен белгілейік. (сурет).

 

(i1) .... ......

 

S

 

..........

 

с-әрекетті арықарай орындауда w тізбегінің ағашын құруға болады.Егер КС-грамматикасынанда берілген G=(N,S,R,S) болса, онда ол ережеде 1-ден р-ға дейін, ал тізбек wÎS жатады.Бізге ағаштың тамырының талдауы 1.3-суретте берілген.

S

 

 

 

 

талдаудың сол жақ стратегиясы ағаштар талдауын тамырынан бастап оңнан солға қарай барады.Әрбір G грамматикасы үшін терминалданбаған МП-құраушысының негізі синтаксистік анализатор болып табылады.Осыған орай құрылған М1 анализаторы сол жақ w тізбегімен анықталады.Ол келесі операциялардан тұрады:

Терминалды ашу дүкенін жоғарысында орналасады.Р ережесі бойынша ол d функциясымен бірге орындалады.

Ағымды еңгізу символы d функциясымен салыстырады.

МЫСАЛ 1.2.

G грамматикасы үшін сол анализатор құрамыз.

(1) Е®Е+Т (4) Т®Р

(2) Е®Т (5) Р®і

(3) Т®Т*Р (6) Р®(Р).

M1=({q}, {i, +,*,(,)}, {i,+,*,(,),E,T,P}, {1,2,3,4,5,6},d,q,E,{q})

d функциясын анықтайық.

 

Ереже бойынша (2) d(q,a,a)={(E,E)} анықтамасы үшін ортақ а є S.

 

Ереже бойынша бұл грамматика (1) Е®Е+Т (1) ереже бойынша d(q,e,E) функциясына (q,E+T,1) элементін қосу қажет.

 

Барлық грамматика ережесі үшін анологиялық қозғалысты қайталайды. Аяқталған функция түрінің шығу d алайық:

d(q,e,E)={(q,E+T,1),(q,T,2)},

d(q,e,T)={(q,T*R,3), (q,R,4)},

d(q,e,R)={(q,(E), 6),(q,i,5)}.

Шығу тізбегі үшін тізілген анализатор М1 мынадай мәндерді орындауы мүмкін:

(q, i+ i*i,E,e)+(q, i+i*i, E+T, 1) +(q, i+i*I, T+T, 12)

+(q, i+i*i, P+T,124) +(q, i+i*I +T, 1245)

+(q, + i*i, +T, 1245) +(q, i*i, T, 1245)

+(q, i*i, T*P, 12453) +(q, i*I, R*R, 124534)

+(q, i*i, i*P, 1245345) +(q, * i, *R, 1245345)

+(q, i, P, 1245345) +(q, I, i, 12453455)

+(q, e e, 12453455).

Шығу тізбегі і+і*і мынаған тең:12453450

LR- талдау

Контекстті-еркін грамматика берілсін. Терминаьды тізбекті қарастырайық. Біріншіден оның грамматикамен берілген тілге жататындығын анықтау керек, егер жатса қорытындысын құру керек. Талдаудың екі түрі атақты: рекурсивті талдау және талдау стекті және соңғы автоматты қолданылады. Біз рекурсивті талдауды қарастырмаймыз, өйткені грамматика классы LR талдауына қарағанда мағыналы. Енді стекті және соңғы автоматты қолданылатын LR талдауына көшелік. L-әрпі тізбектің солдан оңға қарай шығатынын білдіреді, ал R-әрпі осыдан оң болады.

LR- процессін анықтайық. LR-процессінің жағдайын кез-келген уақытта LR-процессінің стегімен және енгізу тізбегінің оқылмаған бөлігімен суреттеледі. LR-стегінің процессі кәдімгі символдарды және метасимволдарды сақтайды. LR-стегінің процессін енгізу тізбегіне қарсы бұрылған ретінде қарастыру оңай.

LR-стегінің процессі терминалды және терминалды емес сөзін білдіреді, ол оң жақ бөлігінен шығарылады.

LR-процессін орындаған кезде кез-келген уақытта келесі екі әрекет орындалуы мүмкін:

+----------------- |содержимое стека << входная цепочка +-----------------

1. Қозғалу. Біз бірінші енгізу тізбегінің оқылмағанм символын алып, оны стекке ауыстырамыз. Мысалы:

2. +---------3. қозғалысқа дейін| aMBbaC abcdef4. +---------5. 6. +---------7. қозғалыстан кейін| aMBbaCa bcdef8. +---------

("a" символын енгізу тізбегінің басынан стекке жылжыту.).

9. Түйген. кейбір ереже бойынша. по некоторому правилу. Стекте бар сөздің соңы, грамматика ережесінің оң жақ бөлігімен сәйкес келуі керек. Сонда осы ереже бойынша ереженің сол жақ бөлігіне ауыстырылу болып табылады. Келесі мысалды қарастырайық. Грамматикада ереже болсын.

10. A -> baCa

LR-процесс жағдайы түйгенге дейін.

+--------- | aMBbaCa bcdef +---------

Осы ереже бойынша LR-процесс жағдайы түйгеннен кейін:

+--------- | aMBA bcdef +---------

("baCa" сөзінің соңы стекте «А» ауыстырылған)

Анықтауыш. LR-процессі сәтті орындалады, егер оның соңында оқылмаған енгізу тізбегі бос болса, ал стекта метасимвол грамматикасының басы болса.

LR-процессінің сәтті соңғы жағдайы:

+---- | S +----

 

Мысал: грамматиканы қарастырайық:

S -> F F -> a F -> F+F F -> F*F

Осы шығарылған грамматикадағы тізбекті қарастырайық "a+a*a". Реттік жағдайын және LR-процессінің сәтті әрекетін осы тізбекке қарастырайық.

Басты жағдай

+-- | a+a*a +--

әрекет –қозғалыс.

LR-процессінің жағдайы

+-- |a +a*a +--

F -> a ережесі бойынша түйгеннің--әрекеті.

+-- |F +a*a +--

әрекет –қозғалыс.

+--- |F+ a*a +---

әрекет –қозғалыс.

+--- |F+a *a +---

F -> a ережесі бойынша түйгеннің--әрекеті

+--- |F+F *a +---

әрекет –қозғалыс.

+---- |F+F* a +----

әрекет –қозғалыс
+-----

|F+F*a +-----

F -> a ережесі бойынша түйгеннің--әрекеті.
+-----

|F+F*F +-----

F -> F*F ережесі бойынша түйгеннің--әрекеті.
+----

|F+F +----

F -> F+F ережесі бойынша түйгеннің--әрекеті.
+--

|F +--

S -> F ережесі бойынша түйгеннің--әрекеті.
+--

|S +--

LR-процессінің сәтті соңғы жағдайы.

 

Бақылау сұрақтары:

1. Шығарылған синтаксистік талдауын атаңыз?

2. LL(1) – грамматикасы қызметі қандай?

3. Рекурсивтік түсу?

4. КС-грамматикасының бейнеленуінің жүзеге асыру жолдарын атаңыз?

5. Сол жақ рекурсияның жойылуы. Сол жақ факторизация?

6. Енгізілген синтаксистік талдау. LL(1)-анализаторы?

Ұсынылған әдебиеттер:

1. Берн.Э.С. Вопросы теории поисковых систем. М. 1966 г

2. Брауэр В. Введение в теорию конечных автоматов. М. 1987 г

Дәріс № 14 СЕМАНТИКАЛЫҚ АНАЛИЗАТОРЛАР

Мақсаты: Тілдің түрлі қасиеттерін, символдар кестесін ұйымдатылуын түсіндіру

Жоспары:

1. Тілдің контексті бос емес қасиеттері. Символдар кестесінің ұйымдастыру. Идентификатордың кестесі. Орналастыру кестесі.

2. Тізімді қойылым кестесі. Орналастыру функциясы. Ағаштар кестесі. Блоқтық құрылым.

 

 

Тілдің контексті еркін емес қасиеттері

Текстік редакторден контексті еркін емес тілдерді текстілік тапсырмалармен қарастырайық, ол анализ жасауға рұқсат етеді және процесс олардың құрылысы болып табылады. Текстер соңғы қорытынды секілді статикалық емес, олардың құру технология түріндегі динамикалық болып көрінеді.

Контексті еркін емес текстілік редактор текстілік редактормен айырмашылығы олардың белгілеулері ортақ болып келеді, ол тексті дайындау кезінде үрдістің құрудың көтеріп, жіберілген қатерлерді тексереді. Ол негізгі құрылым тіліндегі контекстілік қасиетті қолданған жағдайда, тіл сөзіндегі ұйымдықты қолданушы қалған жағдайда болады. Контексті еркін емес редактор тілдері оқулық материалдарда информатика бойынша негізгі объектілер болып, контекстік еркін емес тілдерде құрастырылған текстік программалар және олардың фрагменттері кезінде пайдалы болады. Осындай материалдар маңыздылығы өспелі болады, егер объектілер тек қана текстік программаларды ғана емес, сонымен қатар үрдісте көрсетсе. Дәстүрлі оқулық әдебиеттерінде демонстрациялық технологиялық барабарлар программалық тапсырманы шығару іске асыруға қиынға түседі, егер ол оның алынған технологиясы мен бір мезетте құрылған, контексті еркін емес тіл редакторы сақталған тарихты құрылымдық мәтінде жабдықтаса.

Эффектілік контексті емес тіл редакторы мүмкін болатын сан альтернативі үшін қолданылады. Егер альтернативте контекстілік санды шамадан асыруға рұқсат етсе – ол ұйымдық болып саналады, мақсатқа жету үшін контексті есебінсіз мәтіндік редактор режиміне көшу керек. Грамматикада ережесі кең спектор альтернативін жібергенде, дайындау мәтіндік контексті еркін емес тілдер фрагментті кезінде сондай редактордан эффектіні күтпеуге де болады. Шекті жағдайда мұндай мүмкіндіктер дәстүрлі дайындау мәтіні толығымен қандай да бір мәтінде қолданса. Бұл жағдай редакторменде ұқсас.

Контексті еркін емес тілдер дайындау фрагменттері кезінде, өз бетінше символдарды тере бастайды.

Дайындау программалық мәтінінің технологиялық барабарлары редавкторде псевдо – мәтіндік механизмде ұсталынады және мәтіннің айналасындағы бақылауыш механизмді болып табылады. Псевдо – мәтіндік – ол атауларды, оның иерарахия құру кезінде мәтіндік фрагменттің белгілеулерін анықтайтын шығару мәтіні. Мәтіннің айналасында псевдо – мәтінді толықтыру мүмкіндіктері қолданылады. Мәтіннің айналасыдағы мысал программмалау тілі кезінде шығу және кіру параметрлері, тапсырмаларға және процедураларға шешімдер қолданушы, анықтаушы, объект қасиеттерінің атауы болады. Мұндай механизімінің кіріспесі қолданбалы тапсырмаларды шешу автоматтың көз қарасын суреттелген, құрылған урдіс барабарларымен қамтамасыз етеді.

Контексті негізгі тілдегі есеп “ойшылдық” редакторын кеңейтеді. әрбір мәтінде редактор мәтіндік объект анықтамасын құрайды және берілегн объектілер. Кіріспе сервистік процедурада алдын-ала контексті анализ дайындау мәтіндік программма кезінде қателерден алшақ жүрді, мәлімдеме объектілері қайталау, көріну облыстарындағы объектілер секілді. Сонымен қатар бұл ппроцедура синтаксикалық анализатордағы абсолютті аналог болмайды.

Мәтіндік контексті еркін емес тілдегі реализациясы қолданулар объектісінде негізделген. Негізінде нақты тілге көбінесе Pascal тілі таңдалынған. Синтаксикалық ережесі әрбір қадам үшін болса, ал басқасы – анықтауыш шекара мәтіндік қасиет болады. Зерттеу нұсқасында “контекстілі” редакторы былай болады.

- <программа>,

- <блок>,

- <оператор>,

- <оператор бағыттауышы>,

- <шығу - кіру операторлары>.

әрбір түсінікте реализация кезінде ұқсастығында объект қойылған және стандартты сол объект үшін теру тәсілдері. Шартты барлық тәсілдерді құру және бұзу тәсілдеріне, өзгеру құрылымдық бөлім тәсілдеріне, контексті анализ тәсілдеріне навигация тәсіліне бөлуге болады.

Навигация мәтін бойынша контекстілік курсор болып саналады. Контекстілік бөлімде курсор контекста белгілеу үшін болып саналады. Батырмалар көріну контексте навигацияны іске асырады. Клавиша Page Up псевдо – мәтінде көрсетіледі. Ал Page Down клавишасы псевдо-мәтінді – көрсетеді.

Таңдау альтернативі үшін дайындау мәтіні үшін қалғып шығу менюі алдын-ала ескерілген. Сонымен теру альтернативі менюда ағымдағы контекстілі курсорды анықтайды. Редактор шығуда және әртүрлі стандарттағы дайындалған мәтінді қамтамасыз етеді.

Қолданушы редакторлар екі деңгейге бөлінеді – авторлар және оқырмандар. Бұл топтарға авторлық және оқырмандық режимдер берілгендер. Авторлық режим мәтіндерді дайындауға және оларды іске асыруға рұқсат етеді. Ал оқырмандық деңгей мәтіндерді қарауды қамтамасыздандырады.

Идентификаторлар кестесі және символдар кестесі. Жоғары да айтқанымыздай, обьект ақпаратын әдетте екі бөлікке бөліп қарастырамыз: атау(идентификатор) және бейнеленуі. Бұл обьектің мінездемелерін жеке-жеке сақтау қолайлы. Бұл екі себеппен байланысты: 1) идентификатордың символдық құрылымдарының белгісіз ұзындықта болуы мүмкін. 2) әрбір облыстағы әртүрлі обьектердің бірдей атаулары болуы мүмкін және ол идентификатордың қайта сақталуы үшін жадты босқа ұстамауы керек. Идентификаторды сақтауға арналған кесте идентификатор кестесі деп аталады, ал обьектің қасиеттерін сақтауға арналған кесте- символдар кестесі деп аталады. Ондай жағдайда обьектің бір қасиеті оның атауы болып табылады және символдар кестесінде идентификатор кестесіне көрсететін сәйкес көрсеткіш сақталады. идентификатор кестелері Егер идентификатор ұзындығы шектеулі болса, онда идентификатор кестесі жай жиым түрінде ұйымдастырылуы мүмкін. Бұл мына суретте көрсетілген. Кейбір енгізулер бос емес, ал кйбіреулері бос болуы мүмкін. Идентикатор кестелерін ұйымдастыру әдісі - жиымдар символында идентификаторларды сақтау. Бұл жағдайда идентификаторға символдың бірінші номері сәйкес келеді. Кестесінде идентификатор белгілі бір символмен аяқталады. (EOS). Символдар кестесі және таблицаларды қою. Символдар кестесінң ұйымын кесте қою арқылы қарастырамыз. Кесте қою- идентификаторға көрсететні жиымдар көрсеткіші тізімі. әрбір сондай тізімге идентификаторға көрсететін тізімдер кіреді және олар функцияны қоюдың бір мағынасын білдіреді. Бастапқыда кестені қою бос болып келеді. Барлық элементтердің NIL мағынасын білдіреді. Id идентификаторны іздестіруде H(id) функциясын қою есептелінеді және T[H]- ның сызықтық тізімі қарастырылады. Кестедегі іздестіру төмендегі процедурадағыдай болуы мүмкін.type Element= record IdenP:integer; Next:pointer to Element; end;Pointer=pointer to Elementfunction Search(Id):Pointer; var P:Pointer; begin P:=T[H(Id)]; loop if P=nil then return(nil) elsif IdenTab[P^.IdenP]=Id then return(P) else P:=P^.Next end end; end; IdenTab – идентификаторлар кестесі. Кестеге обьекті кірістіру төмендегі прогцедурадағыдай болады: function Insert(Id):Pointer; var P,H:Pointer; begin P:=Search(Id); if P<>nil then return(P) else H:=H(Id); new(P); P^.Next:=T[H]; T[H]:=P; P^.Idenp:=Include(Id); end; return(P); end; Кестені жүзеге асырудың бірнеше әдістерін теңестірі. Жадты қолдану техникасы тұрғысынан кестені жүзеге асырудың әдістерін қарастырамыз. Егер кесте жиымда орналасса, онда бір жағынан динамикалық жадты қолдану мүмкіндігі туады, ал екіншіден қиындық қатары туындайды. Динамикалық жадты қолдануқиын операция. Ол динамикалық жадпен жұмыс істеу механизмін қолдау өте қиын болғандықтан. Бос немесе бос емес жадтың тізімін қолдау керек, сұраныс кезінде жадтың қажетті бір бөлігін таңдау керек. Басқа тұрғыдан қарасақ, жиымды қолдану үлкен жадты қажет етеді, ал ол дегеніміз мағыналы жад мүлде қолданылмайды. Сонымен қатар жиымның барлық элементтерін толтырмауға тура келеді.

Ағаш анализі және контекстті- еркін грамматикалар.

Көптеген синтаксистік анализдің әдістері ағаш тәрізді болады. Қарапайым түрлердің бірі – контекстті- еркін грамматикалар болып табылады, ол мына ережелерге сүйене отырып S=NP+VP немесе VP=V+NP, мұнда сол жағы оң жаққа контесттіксіз ауыса алады.Контекстті –еркін грамматикалар көптеген машиналық тілдерде көп қолданылады, және ол арқылы жоғары эффектілік анализдің әдістері құрылған. бұл әдістің жетіспеуі- граматикалық бұрыс фразаларға тыйым салуы жоқ болады, мысалы, бастауыш баяндауышпен қатысы жоқ.Бұл проблеманың шешімі бөлек екі грамматикалардың параллель жұмыс істеуі: бір жаңынан- жалғыз, басқа жағынан –көптік жалғауы. Бұдан басқа сөйлемдерге өзінің грамматикасы болуы керек және т.с.с.Семантикалық бұрыс сөйлем семантикалық жазуға айналуы мүмкін.Мұның бәрі үлкен ережелер жиынтығын береді, және контекстті- еркін грамматикалар NLP-ге жарамай қалады.

Трансформатты грамматика. Трансформатты грамматика жоғары жетіспеушілікте және ЕЯ рационалды ережелерде құрылған, бірақ NLP-ге жарамайды.Трансформатты грамматиканы Хомский құрған, және ол керісінше болғанда жұмысы қиындатылған, бұл анализ.

Толық ауысулар. Толық ауысулар Бобровтың (Bobrow), Фрейзердің (Fraser) және көбінесе Вудстың (Woods) жұмыстарымен жасалған, ол синтаксистік анализдің және контектті-еркін грамматикалардың ары қарай дамуына әсерін тигізді. Ол өзіне тармақтар ұсынады, “кеңейтілген”, жанында тесттер (ережелер), және мұнда анализдің әрі қарай дамуына жол береді. Берілген шешімдері ұяшықтарға жазылады (регистрлар). Төменде мынадай тордағы мысал келтіріледі, барлық типтердегі сөйлемдерді анализдеуге жол береді (соның ішінде пассив), олар бастауышқа бағынады, бяндауыш және тік толықтауыштан, мына мысалға сәйкес The rabbit nibbles the carrot (Кролик грызет морковь). Берілген стрелкалар тесттің номерін көрсетеді, және немесе белгілерін, аналогтық түрде контекстті- еркін грамматикаларда қолданады (NP), немесе сөйлемдерде (by). Тесттер LISP тілінде жазылған және өзімен бірге ережелер типін ұсынады егер условие=истина болса, онда Х белгісінің анализдеуін қарастырады және оны берілген ұяшыққа жазуы керек.

Ендігі біздің қарастыратын әдісіміз, конспект-бос грамматика.

Анықтама: G=(N, S,P,S) конспект-бос грамматика. G-дара шешу, енді келесідегідей 4 мәселені қарастырамыз:

1. Әрбір тізбекте V-алфавит символы;

2. 2. Тізбектің соңы-S;

3. 3. Егер тізбек соңында бір ғана ереже, тізбек терминалды емес болуы керек;

4. Егер n1, n2, n3,……nk түзу сызықты n ережесі, тізбекте А1, А2, А3, Ак байланысы, түзу тізбегінде n бар, А немесе А1, А2, А3, …..Ак болады.

5. Екі ішкі сынып АТ грамматикасын қарастырайық.

Тілдік процессордағы қолданылатын АТ программасындағы екі ішкі сынып программасын қарастырайық: L-атрибуттық трансляциялық грамматика және S-атрибуттық трансляциялық грамматика.

L-атрибуттық және S-атрибуттық транслияциялық граммаатикалар

АТ-грамматикасында L-арибуттық бет, тексеруге болады, осы атрибутта әрбір ережені шығара отырып қолдануға болады. Мысалы L – атрибуттық транслияция грамматикасына GA грамматикасы жатады.

Шығару алдында қарастырылып отырған атрибут тек қана шығару атрибуттық белгіге байланысты, L атрибут грамматикасын шығарылмаған синтаксистік анализаторды қолдануға мүмкіндік береді. 2 және 3 бөлімде АТ-грамматикасын жинақы Қылып жасайды.

Шектелген L-атрибуттық транслияциялық грамматиканы салады, атрибуттық мағынасын шығарылмайтын процесте шығаруға мүмкіндік береді. Шығарылмаған астерминалық анализатор LL(1)-грамматика керек етеді. L-атрибуттық транслятор грамматика суреттелетін аудару жай түрдің өзіне қаратуы болады.

Қойылым кестесі. Тізімді қойылым кестесі.

Бюфонның қарауынша, былай деп айтуға болады, программист - ол өзі жазған программаның стилі. Программалау стилі және оның элемементтері-формальды емес ұғым. Әртүрлі адамдардың стильге деген әртүрлі көзқарастары болады. 60-жылдары жақсы стильдің пайда болуы-бұл программаның қойылымдылығы.

Қойылым кестесі фрагменттерден құралады,олардың әрқайсысы бір кіретін бір шығатын бағыттауыш стрелкадан тұрады. Қарапайым фрагменттен – бос- ол бір бағыттауыш стрелкадан, кіретін жіне шығатын бір уақытта, оның артынан бір операторлы фрагмент жүреді.

Барлық түрлердің фрагменттері үш немесе төрт операторлардың композициялары болып табылады.Басқа да түрлердің фрагменттері ішкі фрагменттерді ауыстыра алады.

2. Кезектес композицияда шығатын бағыттауыш стрелка біреуінің екіншісінен шығатын операторлы сәйкес келеді, кіретін бағыттауыш стрелкамен ол басқа оператордікі.Қалған композицияның түрлері басқа операторлардың В фрагменттерін қарастырып, шарттардың орындалуын және басқа орындалмаған іс әрекеттерді қарастырады, сондықтан программа өзгермейді.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных