новости онлайн новости    астрологические гороскопы гороскоп    погода в украине, погода в россии погода    телепрограмма онлайн, тв-программа телепрограмма    рецетпы, каталог рецептов онлайн рецепты    фильмы скачать бесплатно скачать фильмы    бесплатно игры скачать скачать игры    каталог рефератов, банк рефератов рефераты    бесплатные онлайн игры онлайн игры    мобилки, каталог мобильных телефонов мобильные телефоны    скачать обои для рабочего стола обои    каталог лучших сайтов каталог сайтов    онлайн карты городов украины - киева, львова, донецка, днепропетровска, одессы, харькова карты онлайн    отправка sms, смс отправка отправка sms    котировки валюты курс валют   
Загрузка...
Загрузка...

поиск реферата

онлайн игры

скачать реферат

Скачано: 9 Дата публикации: 17.09.2007 Размер: 24 kb

Реферат - LL(k) - Грамматики

Для скачивания реферата LL(k) - Грамматики
введите число указаное ниже и нажмите "Скачать реферат"

3077

Текст реферата:
страница 1
LL(k) - Грамматики.
Определение LL(k)-грамматик.
Для начала предположим, что G=(N,E,P,S) - однозначная грамматика и w=a1,a2...an - цепочка из L(G). Тогда существует единственная последовательность левовыводимых цепочек b0,b1..bm, для которой S=b0,bi,pi Ю bi+1 при 0<=i Допустим, что мы хотим найти этот левый разбор, просматривая w один раз слева направо. Можно попытаться сделать это, строя последовательность левовыводимых цепочек b0,b1..bm. Если bi=a1,a2...ajAB, то к данному моменту анализа мы уже прочли первые j входных символов и сравнили их с первыми j символами цепочки bi. Было бы желательно определить bi+1, зная только a1,a2...aj (часть входной цепочки, считанную к данному моменту), несколько следующих входных символов (aj+1aj+2...aj+k для некоторого фиксированного k) и нетерминал A. Если эти три фактора однозначно определяют, какое правило надо применить для развертки нетерминала A, то ai+1 точно определяется по ai и k входным символам aj+1aj+2...aj+k .
Грамматика, в которой каждый левый вывод обладает этим свойством, называется LL(k)-грамматикой. Мы увидим, что для каждой LL(k)- грамматики можно построить детерминированный левый анализатор, работающий линейное время. Дадим несколько определений :
ОПР: Пусть a=xb такая левовыводимая цепочка в грамматике G=(N,E,P,S), что xОE*, а b либо начинается нетерминалом, либо пустая цепочка. Будем называть x законченной частью цепочки a, а b - незаконченной частью частью. Границу между x и b будем называть рубежом.
ПРМ: Пусть x=abacAaB, тогда abac - законченная часть цепочки x, AaB - незаконченная часть цепочки. Если x=abc, то abc - законченная часть и е - незаконченная и рубежом служит конец цепочки.
Иными словами идею LL(k) - грамматики можно объяснить так: если имеется уже разобранная часть цепочки, то на основании этого и еще нескольких неразобранных символов мы можем сделать вывод о том, какое правило неоюходимо применить. Таким образом грамматика посуществу не зависит (не считая k последующих символов) от того, что выводится из незаконченной части цепочки. В терминах деревьев этот процесс выглядит следующим образом: дерево вывода цепочки строится начиная с корня и детерминировано сверху вниз.
Вводят функцию FIRST(x) - возвращающую первых k символов. Обычно приписывают в качестве индексов k и G - количество символов и грамматика соответственно, но их возможно опускать, если это не вызовет недоразумений.
ОПР: KC- грамматика G=(N,E,P,S) называется LL(k)-грамматикой для некоторого фиксированного k, если из существования двух левых выводов
(1) SЮwAa`Юwb`a`Юwx
(2) SЮwAa`Юwc`a`Юwy
для которых FIRST(x)=FIRST(y), вытекает что b`=c`.
Иначе это определение выражает то, что для имеющейся цепочки и зная следующие k символов можно применить не более одного правила вывода. Грамматика называется LL- грамматикой, если она LL(k)- грамматика для некоторого k.
ПРМ: Пусть G состоит из правил S®aAS|b, A®a|bSA. Интуитивно G является LL(1)- грамматикой, потому что, коль скоро дан самый левый нетерминал С в левовыводимой цепочке и следующий входной символ с, существует не более одного правила, применимого к С и приводящего к терминальной цепочке, начинающейся символом с. Переходя к определению LL(1)- грамматики, мы видим, что если SЮwSa`Юwb`a`Юwx и SЮwSa`Юwc`a`Юwy и цепочки x и y начинаются одним и тем же символом , то должно быть b`=c`. В данном случае если x и y начинаются символом a, то в выводе участвовало правило S®aAS и b`=c`=aAS. Альтернатива S®b здесь невозможна. С другой стороны, если x и y начинаются с b, то должно применяться правило S®b и b`=c`=b. Заметим, что случай x=y=e здесь невозможен, так как из S в грамматике G не выводится e.
Когда рассматриваются два вывода SЮwAa`Юwc`a`Юwy рассуждение аналогично. Грамматика G служит примером так называемой простой LL(1)- грамматики (или разделенной грамматики).
ОПР: КС-грамматика G=(N,E,P,S) без e-правил называется простой LL(k) - грамматикой ( или разделенной грамматикой ), если для каждого AОN все его альтернативы начинаются различными терминальными символами.
Предсказывающие алгоритмы разбора.
Разбор для LL(k)-грамматики очень удобно осуществлять с помощью так называемого k- предсказывающего алгоритма разбора. k-предсказывающий алгоритм использует входную ленту, магазин и выходную ленту. Алгоритм пытается проследить вывод цепочки, записанной на его входной ленте. При чтении анализируемой цепочки входная головка может «заглядывать» вперед на очередные k символа. Эти символы называют аванцепочкой. Алгоритм имеет конфигурацию представляемую тройкой (x,Xa,n), где
x - неиспользованная часть входной цепочки
Xa - цепочка в магазине и Х - верхний символ
n - цепочка на выходной ленте
Работой k- предсказывающего алгоритма руководит управляющая таблица, которая задает соответствие между множеством
{(верхний символ магазина)Х(аванцепочка)}
и множеством
{(правая часть правила и его номер)|ошибка|выброс|допуск}.
Алгоритм является корректным для грамматики, если для любой цепочки из этой грамматики алгоритм позволяет получить упорядоченный список правил для ее разбора. Если работой некоего алгоритма руководит какая-то таблица и этот алгоритм оказывается корректным для рассматриваемой грамматики, то таблицу называют корректной.
ПРМ:
Пусть дана грамматика с правилами :
(1) S®aAS
(2) S®b
(3) A®a
(4) A®bSA
Для такой грамматики будет построена таблица:
аванцепочка
a b e
верхний S aAS,1 b,2 ошибка
символ A a,3 bSA,4 ошибка
магазина a выброс ошибка ошибка
b ошибка выброс ошибка
$ ошибка ошибка допуск
По такой таблице будет проведен анализ:
(abbab,S$,e) |-( abbab,aAS$,1)
|-( bbab,AS$,1)
|-( bbab,bSAS$,14)
|-( bab,SAS$,14)
|-( bab,bAS$,142)
|-( ab,AS$,142)
|-( ab,aS$,1423)
|-( b,S$,1423)
|-( b,b$,14232)
|-( e,$,14232)
k- предсказывающий алгоритм разбора КС-грамматики G можно моделировать на детерминированном МП- преобразователе с концевым маркером на входной ленте. Так как входная головка МП- преобразователя может обозреть только один входной символ, аванцепочка должна храниться в конечной памяти управляющего устройства. Остальные детали моделирования очевидны.
ТРМ: Пусть А - k- предсказывающий алгоритм разбора для КС-грамматики G. Тогда существует такой детерминированный МП- преобразователь, который позволяет разобрать любую цепочку из этой грамматики. Иначе говоря можно промоделировать любой алгоритм на указанном преобразователе.
СЛВ: Пусть А - k- предсказывающий алгоритм разбора для КС-грамматики G. Тогда для G существует детерминированный левый анализатор.
Следствия определения LL(k)-грамматики.
Покажем что для каждой LL(k) грамматики можно механически построить корректный k- предсказывающий алгоритм разбора. Так как ядром алгоритма является управляющая таблица, надо показать, как строить по грамматике такую таблицу. Для этого выведем некоторые следствия определения LL(k)- грамматики.
В определении LL(k)- грамматики утверждается, что для данной выводимой цепочки wAa цепочка w и непосредственно следующие за ней k входных символов однозначно определяют, какое применить правило для развертки нетерминала A. Поэтому на первый взгляд может показаться, что для определения нужного правила надо помнить всю цепочку w. Однако это не так. Докажем теорему, очень важную для понимания LL(k)-грамматик:
ТРМ: КС-грамматика G=(N,E,P,S) является LL(k)-грамматикой тогда и только тогда, когда для двух различных правил A®b` и A®c` из P пересечение FIRST(b`a`)ЗFIRST(c`a`) пусто для всех таких wAa`, что SЮwAa`.
ДКВ: Необходимость. Допустим, что w, A, a`, b` и c` удовлетворяют условиям теоремы, а FIRST(b`a`)ЗFIRST(c`a`) содержит x. Тогда по определению FIRST для некоторых y и z найдутся выводы SЮwAa`Юwb`a`Юwxy и SЮwAa`Юwc`a`Юwxz. (Заметим, что здесь мы использовали тот факт, что N не содержит бесполезных терминалов, как это предполагается для всех рассматриваемых грамматик.) Если |x| < k то y = z = e. Так как b` № c`, то G не LL(k)- грамматика.
Достаточность. Допустим, что G не LL(k)- грамматика. Тогда найдутся такие два вывода SЮwAa`Юwb`a`Юwx и SЮwAa`Юwc`a`Юwy, что цепочки x и y совпадают в первых k позициях, н

Страницы:       1   2    »»

категории рефератов

  Архитектура       Астрономия       Банковское дело       Биографии       Биология       Бух.учет и аудит       Военное дело       География       Иностранные языки       Информатика       История       История государства       Компьютерные сети       Компьютерные сети       Криминология       Культура и искусство       Литература       Логика       Маркетинг и реклама       Математика       Машиностроение       Медицина       Международная экономика       Менеджмент       Минералогия       Музыка       Налоги       Офисное ПО       Педагогика       Политология       Право       Предпринимательсво     Программирование     Промышленные технологии       Психология       Разное       Семейное право       Социология       Физика       Физкультура и спорт       Философия и религия       Финансы       Химия       Ценные бумаги       Экология       Экономика       Экономическая география       Электроника       Языкознание    

реклама

.

обои

Вход в аккаунт

Логин:

Пароль:

Регистрация пользователя


Все поля являются обязательными для заполнения!

Имя:

Фамилия:

Логин:

Пароль:

Повторите пароль:

Страна:

Аватар:

E-mail:


.
новости | гороскоп | отправка смс | курс валют | телепрограмма | скачать фильмы | скачать игры | рефераты | онлайн игры | обои