Диаграмма грамматики.
Пусть дана А-грамматика G=< VT,VN, S, R> . Диаграмма А-грамматики – граф с помеченными вершинами и дугами. Множество вершин графа соответствует множеству нетерминалов А-грамматики, приведенной к каноническому виду, а множество дуг – множеству правил грамматики.
Преобразование грамматики:
Вводим дополнительный нетерминальный символ К.VN =VNÈ{К}
Заменяем правила вида А®а на правила А®аК.
Вводим дополнительное правило К®l
Таким образом, все правила грамматики теперь приобрели "стандартный" вид A®aBили A®l.
Построение диаграммы опишем следующими правилами.
1. Каждому нетерминальному символу поставим в соответствие вершину и пометим ее этим символом.
2. Каждому правилуA®aBсопоставим дугу из вершины A в вершину В и пометим ее терминальным символом а.
3. Отметим в графе как начальную вершину - вершину, соответствующую начальному символу, и как заключительные - все такие вершины В, что B®l(на диаграмме используется символ #).
Пример. Пусть грамматика G8описывается правилами:
S ®aBïbC B ®bïbB C® aS |
Грамматика в канонической форме будет иметь вид:
S ®aBïbC B ®bKïbB C® aS K® l |
Диаграмма грамматики приводится на рис.1.
Рис.1
Очевидно, что существует взаимно-однозначное соответсвие между грамматикой в каноническом виде и диаграммой.
Например, рассмотрим диаграмму грамматики, представленную на рис.2.
Рис.2
Очевидно, что диаграмме соответствует грамматика G9 с правилами
S ®aSïaB B ®bKïbB K® l |