Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Декомпозиция правил грамматики




ЭКВИВАЛЕНТНЫЕ ПРЕОБРАЗОВАНИЯ КС- И А-ГРАММАТИК

 

Напомним, что две грамматики G1 и G2 называются эквивалентными, если они порождают один и тот же язык (L(G1)=L(G2)). Одна из основных задач теории формальных языков - задача выбора наилучшей, по некоторым показателям, грамматики или автомата для описания того или иного языка.

Задача определения эквивалентности двух произвольных грамматик (автоматов) алгоритмически неразрешима. Однако, существуют некоторые преобразования, которые позволяют получить грамматику эквивалентную данной. Преобразования из недетерминированной формы в детерминированную, минимизация, сжатие и ускорение, рассмотренные в разделе 3, - примеры таких эквивалентных преобразований. Ниже будут рассмотрены еще некоторые преобразования, полезные для практики.

 

 

Пусть нам дана КС-грамматика G1=(N,S,P,S).

Теорема 4.1. Если в КС-грамматике G1 существуют правила Y ®aXb и X ®g, тограмматика G2=( N,S,P È { Y®agb},S) эквивалентна G1.

Доказательство. Проверим, что любая цепочка, выводимая в одной грамматике, выводима и в другой.

Пусть j Î L(G1), тогда дерево вывода j в G1 является деревом вывода j и в G2. Обратно, пусть j Î L(G2), следовательно существует некоторое дерево вывода j в G2. Если при этом правило Y®agb не используется, то дерево вывода j в G2 является деревом вывода j в G1. Если же правило Y®agb использовалось при выводе j в G2, то фрагмент вывода Y Þ agb заменяем на фрагмент

Y Þ aXb Þ agb.

В результате получим дерево, в котором используются правила только из P, то есть получим вывод цепочки в G1. Следовательно, из j Î L(G2) следует, что j Î L(G1). 

 

Теорема 4.2. Пусть в грамматике G1 имеется множество правил

{Y® a Xb, X® g1, X® g2,..., X® gn}.

Тогда, заменив это множество на множество

{Y® ag1b, Y® ag2b,..., Y® agnb, X ® g1, X® g2,... X® gn},

получим грамматику, эквивалентную G1. И далее, если X ¹ S и других правил, которые имеют X в правой части нет, то группу правил X ® g k, можно удалить.

Доказательство. Многократно применяя теорему 4.1 в грамматику добавляем правила Y® agkb, где . Удаление правила Y® aXb не приводит к потере выводимых цепочек, так как фрагмент дерева вывода Y Þ aXb Þ agkb можно заменить на YÞ agkb. ƒ

 

Пример 4.1. Рассмотрим фрагмент грамматики для описания числа

<число> ® <знак> <чбз>

<знак> ® + ½ -½ e

Здесь в соответствии с теоремой 4.2: Y - <число>, a - пустая цепочка, X - <знак>, b - <чбз> (число без знака), g1 - +, g2 - -, g3 - e. Группу приведенных правил заменяем на правила

<число> ® + <чбз> ½- <чбз> ½ <чбз> ƒ

 

Теорема 4.3. Замена группы правил Y1 ® a 1Xb 1 , Y2 ® a 2Xb 2 ,... Ym ® a mXbm, X ® g на правила Y1 ® a 1gb 1 , Y2 ® a 2gb 2 ,... Ym ® a mgb m, X ® g, где других правил с нетерминалом X в левой части нет, приводит к эквивалентной грамматике. Если X ¹ S и других правил, которые имеют X в правой части нет, то правило X ® g можно удалить.

Доказательство здесь аналогично теореме 4.2. ƒ

 

Пример 4.2. Замена правил:

S ® AB. C ½ AB. ½ A. C ½ B. ½. C

A ® -

на правила:

S ® - B. C ½ - B. ½ -. C ½ B. ½. C

приводят к эквивалентной грамматике. ƒ

 

Теорема 4.4. Декомпозиция правил. Замена в грамматике G1 группы правил

на группу правил , если

и других в левых и правых частях правил грамматики нет, приводит к грамматике, эквивалентной G1.

При декомпозиции n+m правил грамматики заменяется на n * m правил. ƒ

 

Пример 4.3. Рассмотрим КС - грамматику идентификатора, имеющую вид:

<И> ® <Б> ½ <Б> <И1>

1> ® <Б> ½ <Б> <И1> ½ <Ц> ½ <Ц> <И1>

<Б> ® a ½ b ½ c ½ ... ½ y ½ z

<Ц> ® 0 ½ 1 ½ 2 ½ ... ½ 8 ½ 9

В предложенной грамматике 42 правила. Проведем в ней декомпозицию по <Б> и по <Ц>. Получим новую грамматику, эквивалентную заданной.

<И> ® a ½ ... ½ z ½ a <И1> ½ ... ½ z <И1>

1> ® a ½ ... ½ z ½ a <И1> ½ ... ½ z <И1> ½ 0 ½...½ 9 ½ 0<И1> ½ ... ½ 9<И1>

В результате получено 4*26=104 правил для букв и 2*10=20 правил для цифр, итого 124 правила. Правил стало больше, но вывод, а следовательно и разбор, будет короче. Нетрудно видеть, что рассмотренная декомпозиция позволила перейти от КС-грамматики идентификатора к А-грамматике. ƒ

 

Отметим в заключении параграфа, что все рассмотренные теоремы работают в обе стороны. Так n * m правил при композиции можно заменить на n+m правил. Иногда лучше иметь правил поменьше и компактно описывать язык; иногда, с целью повышения эффективности разбора, их количество необходимо увеличить.




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 684; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.