Скачиваний:
5
Добавлен:
01.05.2014
Размер:
5.87 Кб
Скачать

part35 Пред.Страница   След.Страница   Раздел   Содержание

3.5 Слаборазделенные грамматики Используя введенные понятия,  можно дать определение слаборазделенной грамматики.

  Определение. КС-грамматика называется слаборазделенной, если выполняются  следующие три условия:  правая часть каждого правила представляет собой либо пустую цепочку $, либо начинается с терминального символа, 

если два правила имеют одинаковые левые части, то правые части правил должны начинаться разными символами, 

для каждого нетерминала A, такого что A ==>* $ множество начальных символов не должно пересекаться  с множеством символов, следующих за A.:

ПЕРВ(A) З СЛЕД(A) = $ Используя приведенное определение, выясним, является ли следующая грамматика слаборазделенной: Г3. 3  : R = {(1) <I>  ® a<A> ,          (2) <I>  ® b ,

         (3) <A> ® c<I>a ,

         (4) <A> ® $ }. Эта грамматика не содержит правил с одинаковой левой  частью, начинающихся одинаковыми терминалами, поэтому нужно проверить только условие (3) для правила (4). Вычисляя функции ПЕРВ(<A>) = {c} и СЛЕД(<A>) = СЛЕД(<I>) = {a}, находим, что множество значений функции ПЕРВ(<A>) и множество значений функции СЛЕД(<A>) не имеют общих элементов. Следовательно, грамматика Г3.3 является слаборазделенной.

Проверка выполнения условия (3) для грамматики Г3. 4: R = { <I>  ® a<I><A> | $ ,        <A> ® a | b } дает следующие результаты: ПЕРВ(<I>) = {a} и СЛЕД(<I>) = ПЕРВ(<A>) = {a,b}, которые показывают, что пересечение множеств ПЕРВ(<I>) и СЛЕД(<I>) не пусто. Следовательно грамматика Г3.4 не является  слаборазделенной. Пред.Страница   След.Страница   Раздел   Содержание

Соседние файлы в папке Формальные языки, грамматики и автоматы