Соответствие грамматики BNF

Мой учитель дал мне две грамматики BNF:

A ::= 'd' | A 'e' A | A 'f' A
B ::= 'd' | B B 'e' | B B 'f'

и четыре строки, соответствующие им:

  • dffd
  • dddefddfe
  • Дедф
  • потребовал

Я вычислил двух из них, но два других поставили меня в тупик. Я не хочу, чтобы кто-нибудь говорил мне ответы, но если бы кто-нибудь мог мне подсказать, в чем я ошибаюсь, я был бы очень признателен.


person Community    schedule 24.02.2009    source источник


Ответы (3)


Хм...

По индукции все совпадения должны содержать нечетное количество символов. Так что ни одна из 4-х символьных строк не может быть хитом ...


Ой, погоди. Я только что заметил букву «Y» в первом правиле. Мы знаем, что это такое? Это могло бы сломать мой аргумент ...

person dmckee --- ex-moderator kitten    schedule 24.02.2009
comment
Спасибо, я в основном сосредоточился на них, поскольку думал, что они будут проще; как только я пропустил их, я получил два других. Думаю, я просто спрошу об этом учителя. - person ; 24.02.2009

Это контекстно-свободная грамматика, поэтому вы должны попытаться нарисовать дерево синтаксического анализа. Затем вы можете увидеть, какой нетерминальный символ ведет к какой полученной строке. Эти грамматики довольно просты, поэтому рисование дерева синтаксического анализа должно быть довольно простым делом вручную.

person sykora    schedule 24.02.2009

Я бы посоветовал вам нарисовать для себя конечный автомат или диаграмму состояний, прежде чем писать какой-либо код. Сначала сделайте это вручную, используя карандаш и бумагу.

person duffymo    schedule 24.02.2009