Изменения

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

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

1203 байта добавлено, 19:45, 30 октября 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 Bc</tex>, в правой части которого стоят нетерминал <tex>B</tex>, который есть в множестве, и терминал <tex>c</tex>.
# После следуещего обхода правил из грамматики множество не изменится.
# Теперь удалим правило <tex>S\rightarrow Ac</tex>, так как оно содержит в правой части нетерминал, которого нет в полученном множестве.
== Достижимые и недостижимые нетерминалы ==
Анонимный участник

Навигация