Поиск языка, генерируемого контекстно-свободной грамматикой


11

Это вопрос из книги Дракона (я прошу прощения за ошибки перевода, у меня нет англоязычной версии):

Какой язык генерируется этой грамматикой?

SaSbSbSaSϵ

Я не знаю, что мне здесь делать. Определение в книге о языках говорит об этом (и это почти так в этой главе):

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

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


1
Подсказка: используйте регулярное выражение
Bartosz Przybylski

Для подсказок смотрите ответы ниже. В ответ на ваш вопрос: нет, нет необходимости использовать каждое правило хотя бы один раз. Начните с начального символа (или аксиомы) и применяйте правила перезаписи, пока у вас не останутся только терминальные символы (здесь строчные буквы).
Хендрик Ян

если предположить, что пустая строка не является терминальным символом, то, насколько я понимаю, невозможно, чтобы остались только терминальные символы, или я что-то не так понимаю?
Дан


@dan. Пустая строка исчезает, поэтому вы можете получить только терминалы: . Например. SaSbSaaSbbSaabbSaabbbSaaabbba
Хендрик Ян

Ответы:


6

Подсказка: Что вы можете сказать о количестве е и ы в полученных словах?бab

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

Здесь нет единого рецепта для всех. В общем, неразрешимо, производят ли два CFG один и тот же язык или два CFL - один и тот же язык. Полезный метод - попытаться заметить свойства, которые остаются неизменными во время производства.


5

Подсказка: составьте несколько слов, которые генерируются этой грамматикой. Вы видите образец? Можете ли вы описать некоторые свойства всех слов, генерируемых грамматикой, просто взглянув на правила? Если у вас есть (правильное) предположение относительно языка, генерируемого грамматикой, вам не составит труда доказать это.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.