2011-07-06 5 views
0

У меня есть эти постановки:нормальной форме Хомского правильность

S->aSb 
S-> eps  (eps=empty string) 

следует применять нормальной форме Хомского

Мои рассуждения:

1) устранить с правилами Eps Дано:

S->aSb 
S-> eps 

Получаю:

S->ab 

S->aSb 

2) Ликвидировать правила блок

Есть ни один

3) удалить ненужные символы

я получаю:

S->ab 

Таким образом, данную грамматику после применения CNF (Нормальная форма Хомского) становится:

S->ab 

Я прав?

+0

Это домашнее задание? –

+0

это упражнение ... –

ответ

0

То, что у вас здесь, не совсем то же самое. Обратите внимание, что пустая строка больше не является частью вашего языка, ни строки aabb, aaabbb и т. Д.

Chec шаг, где вы устраняете бесполезные правила. Это второе правило действительно бесполезно?

Кроме того, вы уверены, что можете устранить производство эпсилона?

+0

это правильно .. вы правы. Использование CNF подразумевает удаление производств eps .. но здесь у меня есть только одно правило eps ... Я смущен –

+0

OK правило S-> eps не может быть исключен, потому что S является стартовым символом. Все, что я сделал, было неправильным. –

+0

@ josè: На самом деле вам не нужно удалять все eps-постановления. Грамматика в CNF может содержать правило S -> \ epsilon, где S - начальный терминал, и он не должен встречаться с правой стороны любого производственного правила. –

Смежные вопросы