Изменения

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

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

14 байт добавлено, 20:43, 29 октября 2016
Нет описания правки
Рассмотрим следующую грамматику: <br>
:<tex>
S\rightarrow Ac\\
A\rightarrow SD\\
A\rightarrow a
</tex>
 
# Изначально множество порождающих нетерминалов состоит из одного элемента <tex>A</tex>.
# Добавим в множество нетерминал <tex>S</tex>, так как существует правило <tex>S\rightarrow Ac</tex>, в правой части которого стоят нетерминал <tex>A</tex>, который есть в множестве, и терминал <tex>c</tex>.
Рассмотрим следующую грамматику:<br>
:<tex>
S\rightarrow AB|CD\\
A\rightarrow EF\\
=== Пример ===
1. Пусть нам дана грамматика: <br>
:<tex>
S\rightarrow AS|BS|s \\
E\rightarrow EF|FF \\
F\rightarrow f
</tex><br>
2. Удалим правила, содержащие непорождающие нетерминалы: <br>
:<tex>
S\rightarrow AS|s \\
E\rightarrow EF|FF \\
F\rightarrow f
</tex><br>
3. Теперь удалим недостижимые нетерминалы:<br>
:<tex>
S\rightarrow AS|s \\
A\rightarrow a
Рассмотрим следующую грамматику: <br>
:<tex>
S\rightarrow AB|a \\
A\rightarrow b
188
правок

Навигация