Изменения

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

LR(0)-разбор

483 байта убрано, 16:08, 30 августа 2015
Иллюстрация алгоритма
=== Построение автомата ===
В начале работы стек пуст, и указатель входной цепочки находится перед ее первым символом. Этому состоянию соответствует ситуация <tex>[E_0 \to \cdot E]0</tex>. Для терминалов или нетерминалой, мы строим переходы к другим ситуациям по следующей схеме:  состоянию будет соответствует ситуация <tex>{[} A E_0 \to \alpha \cdot c \beta] \xrightarrow{\text{c}} {[} A \to \alpha c \cdot \betaE] </tex> <tex>{[} A \to \alpha \cdot B \beta] \xrightarrow{\text{B}} {[} A \to \alpha B \cdot \beta] </tex> <tex>{[} A \to \alpha \cdot B \beta] \xrightarrow{\varepsilon} {[} B \to \cdot \gamma] </tex> Получаем . Добавляем остальные состояния и получаем следующий [[Недетерминированные конечные автоматы|НКА]]:
[[Файл:eps-dfa.png|600px]]
Избавимся от <tex>\varepsilon</tex>-переходов , то есть помещаем в одно состояние несколько ситуаций, и получим [[Детерминированные конечные автоматы|ДКА]]:
[[Файл:LRk_dfa.png|600px]]
=== Построение управляющей таблицы ===
Вспомним грамматику и пронумеруем Пронумеруем правила для 2 пунктавыполнения свертки:
<tex>
297
правок

Навигация