Изменения

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

Удаление eps-правил из грамматики

174 байта убрано, 18:35, 1 декабря 2011
Схема алгоритма удаления ε-правил из грамматики
''Схема алгоритма:''
# Найти все <tex>\varepsilon</tex>-порождаюшие нетерминалы.
# Рассмотрим правила вида (*) <tex>A \rightarrow \alpha_0 B_1 \alpha_1 B_2 \alpha_2 ... B_k \alpha_k</tex>, где <tex>\alpha_i</tex> — последовательности из терминалов и нетерминалов, <tex>B_j</tex> — <tex>\varepsilon</tex>-порождающие нетерминалы. Добавить все возможные правила вида (*), в которых либо присутствует, либо отсутствует <tex>B_j\; (1 \le j \le k)</tex>.
# Удалить все <tex>\varepsilon</tex>-правила из <tex>P</tex>.
# Рассмотрим правила вида (*) <tex>A \rightarrow \alpha_0 B_1 \alpha_1 B_2 \alpha_2 ... B_k \alpha_k</tex>, где <tex>\alpha_i</tex> — последовательности из терминалов и нетерминалов, <tex>B_j</tex> — <tex>\varepsilon</tex>-порождающие нетерминалы. Добавить все возможные правила вида (*), в которых либо присутствует, либо отсутствует <tex>B_j\; (1 \le j \le k)</tex>, кроме правила <tex>A \rightarrow \varepsilon</tex>. Такое правило может возникнуть, если все <tex>\alpha_i = \varepsilon</tex>.
''Замечание''
Анонимный участник

Навигация