Изменения

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

Удаление бесполезных символов из грамматики

183 байта добавлено, 19:13, 30 октября 2013
Пример
# Возьмём множество, состоящее из единственного элемента: <tex>\lbrace S \rbrace</tex>.
# Из <tex>S</tex> достижимы нетерминалы <tex>A</tex>, <tex>B</tex>, <tex>C</tex> и <tex>D</tex>. Добавим их в множество и получим <tex>\lbrace S, A, B, C, D \rbrace</tex>.
# Множество изменилось. Рассмотрим следующие элементы в нёмПереберём заново правила из грамматики. Из <tex>BA</tex>, можно вывести <tex>CE</tex> и <tex>DF</tex> нельзя вывести нетермиалы, а из добавим их в множество.# Снова переберём правила. Из <tex>AC</tex> можно вывести только терминал, а <tex>E</tex> и <tex>FG</tex>нету в множестве.# Полученное После последнего обхода правил грамматики множество нетерминалов будет такимне изменилось, значит мы нашли все достижимые нетерминалы: <tex>\lbrace S, A, B, C, D, E, F \rbrace</tex>. Больше оно меняться не будет.
# Теперь удалим правило <tex>G\rightarrow AD</tex>, так как оно содержит в левой части нетерминал, которого нет в полученном множестве.
Анонимный участник

Навигация