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