Операторная грамматика

эпсилон-свободная грамматика называется операторной грамматикой, если в правых частях ее правил вывода нет нетерминалов, стоящих рядом, то есть ее правила вывода имеют вид


Среди терминалов грамматики могут отдельно выделяться символы операций (операторы). Остальные терминальные символы считаются операндами

Link to original

Свойства операторных грамматик

LR(0)-автомат. LR(0)-грамматика. Анализатор на основе LR(0)- автомата

Ключевые определения

r-форма

Пусть - правосторонний вывод цепочки из аксиомы грамматики . Тогда -формой называется каждая цепочка

Link to original

Основа r-формы

Пусть в каком-то правостороннем выводе было использовано правило в контексте . Основой r-формы называется цепочка

Link to original

Активный префикс r-формы

Пусть - r-форма, - основа r-формы.

Активным префиксом называется любой префикс цепочки

т.е. префикс r-формы, не выходящий за правый конец основы этой r-формы

Link to original

LR(0)-пункт

Набор , где - правило грамматики,

Обозначается

x

Link to original

Все LR(0)-пункты — допустимые. Определение допустимости будет позже.

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

Расширенная грамматика

Пусть - контекстно-свободная грамматика. Расширенной грамматикой называется грамматика

где

Link to original

Автомат LR(0)-пунктов

Автомат LR(0)-пунктов

Автоматом LR(0)-пунктов расширенной грамматики называется неполный эпсилон-НКА , где

Функция переходов задается следующим образом:

Link to original

### Пример [[Автомат LR(0)-пунктов|автомата пунктов]]

Нужно замкнуть на себя состояние по . Но это бессмысленно. Поэтому на картинке этот переход опущен

LR(0)-автомат

LR(0)-автомат

эпсилон-замыкание автомата LR(0)-пунктов

Link to original

Идея построения LR(0)-автомата

  1. Каждое состояние LR(0)-автомата — набор пунктов, где
  1. Один пункт может содержаться в нескольких состояниях.
  2. Состояния равны, только если множества пунктов совпадают.

Пример построения LR(0)-автомата