Изменения

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

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

194 байта убрано, 23:43, 31 октября 2013
Пример
<tex>
\begin{array}{l l}
S\rightarrow Ac|Bc\\
A\rightarrow SD\\
A\rightarrow a\\ B\rightarrow b
\end{array}
</tex>
# Изначально множество порождающих нетерминалов состоит из одного элемента <tex>B</tex>.<br>Нетерминал <tex>A</tex> нам не подходит, так как из него можно вывести нетерминалы <tex>S</tex> и <tex>D</tex>.# Добавим в множество нетеминал <tex>S</tex>, так как существует правило <tex>S\rightarrow BcAc</tex>, в правой части которого стоят нетерминал <tex>B</tex>, который есть в множестве, и терминал <tex>c</tex>.
# После следуещего обхода правил из грамматики множество не изменится.
# Теперь удалим правило <tex>SA\rightarrow AcSD</tex>, так как оно содержит в правой части нетерминал, которого нет в полученном множестве.
== Достижимые и недостижимые нетерминалы ==
Анонимный участник

Навигация