В формальной теории языка контекстно-свободная грамматика находится в нормальной форме Грейбах ( GNF ), если правые части всех правил производства начинаются с терминального символа , за которым могут следовать некоторые переменные. Нестрогая форма допускает одно исключение из этого ограничения формата, позволяющее пустому слову (epsilon, ε) быть членом описываемого языка. Нормальная форма была установлена Шейлой Грейбах и носит ее имя.
Точнее, контекстно-свободная грамматика находится в нормальной форме Грейбаха, если все правила продукций имеют вид:
где — нетерминальный символ , — терминальный символ, а — (возможно, пустая) последовательность нетерминальных символов.
Обратите внимание, что в грамматике нет левых рекурсий .
Каждая контекстно-свободная грамматика может быть преобразована в эквивалентную грамматику в нормальной форме Грейбаха. [1] Существуют различные конструкции. Некоторые не допускают вторую форму правила и не могут преобразовывать контекстно-свободные грамматики, которые могут генерировать пустое слово. Для одной такой конструкции размер построенной грамматики составляет O( n 4 ) в общем случае и O( n 3 ), если ни один вывод исходной грамматики не состоит из одного нетерминального символа, где n — размер исходной грамматики. [2] Это преобразование можно использовать для доказательства того, что каждый контекстно-свободный язык может быть принят (недетерминированным) магазинным автоматом реального времени , т. е. автомат считывает букву со своего входа на каждом шаге.
При наличии грамматики в GNF и выводимой строки в грамматике длиной n любой нисходящий анализатор остановится на глубине n .