Изменения

Перейти к: навигация, поиск

LR(0)-разбор

186 байт добавлено, 14:43, 30 августа 2015
Нет описания правки
LR(0)-разборщик это частный случай [[LR(k)-грамматики#LR-разборщик|LR(k)-разборщикa]], для которого рассмотрим построение автомата и управляющей таблицызаметим, что в данном случае <tex>k=0</tex>, то есть решение о своих действиях принимается только на основании содержимого стека, не учитывая символы входной цепочки.
== Формальное описаное 2 Построение автомата и управляющей таблицы == Заметим, что Как было сказано в статье про LR(0k)-разборщик принимает решение о своих действиях только на основании содержимого стека, не учитывая символы входной цепочкиуправляющая программа одинакова для всех LR-анализаторов, а таблица и автомат изменяются от одного анализатора к другому.
=== Ситауции Автомат === Каждое состояние автомата будет состоять из ситуаций.
{{Определение
|id=def_LRk_item)
Пусть <tex>\Gamma =\langle \Sigma, N, S, P \rangle</tex> {{---}} КС-грамматика и <tex>A \to w_1 w_2 \in P</tex>. Композицию <tex>[A \to w_1 \cdot w_2, u] </tex>, где <tex>u \in \Sigma^{k}</tex>, назовем '''LR(k)-ситуацией''' (англ. ''LR(k)-item'')
}}
LR(0)-ситуации не должны содержать терминальной цепочки, так как <tex>k=0</tex>, то есть мы можем записывать их следующим образом: <tex>[A \to w_1 \cdot w_2]</tex>. === Автомат для множества ситуаций === В начале работы стек пуст, и указатель входной цепочки находится перед ее первым символом. Этому Стартовому состоянию соответствует ситуация <tex>[E_0 \to \cdot E]</tex>, где <tex>E_0</tex> {{---}} нетерминал, добавленный при пополнении грамматики, <tex>E</tex> {{---}} стартовый нетерминал.Для терминалов или нетерминалов, Далее мы строим переходы к другим ситуациям по следующей схеме:
<tex>{[} A \to \alpha \cdot c \beta] \xrightarrow{\text{c}} {[} A \to \alpha c \cdot \beta] </tex>
Получаем [[Недетерминированные конечные автоматы|НКА]].
Далее избавимся от <tex>\varepsilon</tex>-переходов и получаем [[Детерминированные конечные автоматы|ДКА]], у которого состояние может содержать несколько ситуаций.
=== Построение управляющей таблицы ===
 
 
== Иллюстрация алгоритма ==
297
правок

Навигация