Пошук мови, породженої граматикою без контексту


11

Це питання з книги Дракона (я вибачаюся за помилки в перекладі, англійської версії в мене немає):

Яку мову породжує ця граматика?

SaSbSbSaSϵ

Я не знаю, що мені тут робити. Визначення в книзі про мови говорить про це (і це майже в главі):

мова - це набір усіх слів, який може бути створений будь-яким деревом розбору.

Отже, якщо я хочу зробити «будь-яке» дерево розбору з цієї граматики, я можу рекурсивно продовжувати його будувати, використовуючи лише перші два правила. Я трохи пошукав і склав враження, що кожне правило треба використовувати один раз, але я не впевнений. Було б дуже корисно, якби хтось зміг дати кілька порад щодо вирішення подібних проблем.


1
Підказка: Використовуйте регулярний вираз
Bartosz Przybylski

Щоб отримати поради, див відповіді нижче. Відповідаючи на ваше запитання: ні, не потрібно використовувати кожне правило хоча б один раз. Почніть з символу запуску (або аксіоми) і застосовуйте правила перезапису, поки у вас не залишиться лише кінцеві символи (тут нижній регістр).
Гендрик Ян

якщо припустити, що порожня рядок не є символом терміналу, наскільки я розумію, не можливо, що залишилися лише символи терміналу, або я щось неправильно розумію?
дан


SаSбSааSббSааббSаабббSаааббба

Відповіді:


6

аб

Було б дуже корисно, якби хтось зміг дати кілька порад щодо вирішення подібних проблем.

Тут немає жодного рецепта, який підходить для всіх. Загалом не можна визначити, чи дві CFG продукують одну і ту ж мову, або два CFL - це одна і та ж мова. Корисний метод намагається помітити властивості, які залишаються інваріантними під час виробництв.


5

Підказка: побудуйте деякі слова, породжені цією граматикою. Ви бачите візерунок? Чи можете ви описати деякі властивості всіх слів, породжених граматикою, просто переглянувши правила? Коли у вас є (правильна) здогадка щодо мови, породженої граматикою, довести це буде не надто складно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.