Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

spoPresentation2

.pdf
Скачиваний:
6
Добавлен:
11.05.2015
Размер:
4.74 Mб
Скачать

Классификация грамматик

Автоматные грамматики

Леволинейные: АoВt, Аot, А,В N, t Т

Праволинейные: АotВ, Аot, А,В N, t Т

В отличии от общего вида регулярных грамматик, в правой части правил может присутствовать только один терминальный символ

Регулярные и автоматные грамматики почти эквивалентны

71

Классификация грамматик

В автоматных грамматиках допускается дополнительное правило вида SoO, где S -

аксиома. При этом S не должна встречаться в правых частях других правил грамматики

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

72

Классификация грамматик

В общем случае одна и та же грамматика может быть отнесена к нескольким классам

Теорема 1. Язык L(G), порождаемый неукорачивающей грамматикой G, легко распознаваем

Теорема 2. Если язык L(G) регулярный, то

он КС. Если язык L(G)

0 1 2

3

КС, то язык L(G)\O

КЗ. Если язык L(G) КЗ,

то он язык класса 0

Классификация грамматик

Для классификации всегда выбирается тип с максимальным номером

Сложность грамматики обратно пропорциональна их типу

Класс 0 допускает самые сложные грамматики, класс 3 – самые простые

74

Классификация грамматик

Пример. G = <N,T,P,S>, N = {F,D,C}, T = {>,<,=,!}, P = {CoD= | F, Do! | = | F, Fo < | >}, S={C}.

CoD= . Для типа 1 (КЗ):

D1АD2oD1ED2, D1, D2 V*, А N, E V+

D1=D2=O V*, тогда A={С} N, E = { D= } V+

Аналогично остальные продукции. Грамматика G соответствует классу 1

Для неукорачивающих

DoE, D, E V+, |E|t|D|

{С} V+,{D=} V+, |D=| =2 > |С| =1

Соответствует. Проверяем все правила

75

Классификация грамматик

Для типа 2 (КС)

АoE, А N, E V+

A={С} N, E={D=} V+

Соответствует. Проверяем все правила

Для типа 3 (регулярные) Леволинейные АoВJ, АoJ, А,В N, J Т*

Праволинейные АoJВ, АoJ, А,В N, J Т* A={С} N, B={D} N, J={=} Т*. Леволинейная

Проверяем все правила

76

Классификация грамматик

Для автоматных АoВa, Аoa, А,В N, a Т

A={С} N, B={D} N, a={=} Т. Соответствует Доходим до продукции СoF

A={С} N, B={F} N, a={O} Т. Не автоматная

77

Иерархия грамматик и языков

Тип Грамматика Язык Распознаватель

Недет., 2-ст.,

0 0 (фр) С фр. стр. неогр. пам.

(машина Тьюринга)

1

1 (КЗ)

КЗ

2

2 (КС)

КС

Недет., 2-ст.,

лин. огр. пам.

Недет., 1-ст.,

магаз. пам.

3

3 (рег)

Рег.

Недет., 1-ст.,

без пам.

 

 

 

78

Иерархия грамматик и языков

Тип 0. Для такого языка невозможно построить компилятор, который гарантировано выполнял бы разбор предложений за ограниченное время на основе ограниченных вычислительных ресурсов

Для КЗ языков время распознавания в общем случае экспоненциально зависит от длины исходной цепочки символов

79

Иерархия грамматик и языков

Для КС языков время распознавания в общем случае полиномиально зависит от длины входной цепочки. В зависимости от класса языка это либо кубическая либо

квадратичная зависимость. Для многих языков этого класса зависимость является линейной

80

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]