Изменения

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

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

6 байт добавлено, 07:29, 23 января 2012
м
«т.к.» → «так как»
Грамматика <tex>\Gamma</tex> не содержит бесполезных нетерминалов <tex>\Leftrightarrow</tex> грамматика <tex>\Gamma</tex> не содержит ни недостижимых нетерминалов, ни непорождающих.
|proof=
''Необходимость.'' Очевидно, т.к. так как недостижимые и непорождающие нетерминалы являются бесполезными.
''Достаточность.'' Рассмотрим любой нетерминал <tex>A</tex>. Так как он достижим, существуют <tex>\alpha</tex> и <tex>\beta</tex> такие, что <tex>S \Rightarrow ^* \alpha A \beta</tex>. Из того, что любой нетерминал является порождающим, следует, что из любой строки можно вывести строку из терминалов. Значит, существует <tex>\omega \in \Sigma ^ *</tex>: <tex>S \Rightarrow ^* \alpha A \beta \Rightarrow ^* \omega</tex>, и <tex>A</tex> {{---}} не бесполезный.
}}
 
== Алгоритм удаления бесполезных нетерминалов ==
editor
177
правок

Навигация