Грамматики предшествования
Грамматики простого предшествования
Определение грамматики простого предшествования
Определение Приведенная КС-грамматика G (VN, VT, P, S) называется грамматикой простого предшествования, если выполняются следующие условия.
1) Для каждой упорядоченной пары терминальных и нетерминальных символов выполняется не более чем одно из трех отношений предшествования:
а) Bi =× Bj (" Bi, Bj Î V), если и только если существует правило A ® xBiBjy Î P, где x, y Î V *;
б) Bi <× Bj (" Bi, Bj Î V), если и только если существует правило A ® xBiDy Î P и вывод D Þ* Bjz, где A, D Î VN, x, y, z Î V *;
в) Bi ×> Bj (" Bi, Bj Î V), если и только если существует правило A ® xCBjy и вывод С Þ* zBi или существует правило A ® xCDy Î P и вывод С Þ* zBi и D Þ* Bjw, где A, C, D Î VN, x, y, z, w Î V *.
2) Различные правила в грамматике имеют разные правые части.
Определение Отношения =×, <×, ×> называют отношениями простого предшествования для символов грамматики.
В основе распознавателя для грамматик простого предшествования лежит правосторонний разбор строки языка. Исходной сентенциальной формой является заданная строка языка, а целевой – начальный символ грамматики. На каждом шаге разбора в исходной цепочке символов пытаются выделить подцепочку, совпадающую с правой частью некоторого правила вывода грамматики, и заменить ее нетерминалом, стоящим в левой части этого правила. Данная операция называется сверткой к нетерминалу, а заменяемая подстрока – основой сентенции. Описанный процесс разбора соответствует построению дерева вывода цепочки снизу вверх (от листьев к корню).
Метод предшествования основан на том факте, что отношения между двумя соседними символами распознаваемой строки соответствуют трем следующим вариантам:
- Bi = × Bi +1, если символы Bi и Bi +1 принадлежат основе;
- Bi < × Bi +1, если Bi +1 – крайний левый символ некоторой основы;
- Bi ×> Bi +1, если Bi – крайний правый символ некоторой основы.