Генерация CFG для языка

Рассмотреть язык {anbmcp | n <= p OR m <= p} создать CFG для этого языка.
Я начал это с S -> aA | aB, но я не уверен, как мне поступить при определении A или B. "ИЛИ" кажется довольно сложным для включения в определение языка, так как нет необходимости отслеживать и n и m и сравнивать их с p, но я не не знаю, какой из них я хочу отслеживать

1 ответ

Решение

Чтобы сохранить это ограничение, для каждого "а" нужно добавить "с". Аналогично для каждого "b" вы должны добавить "c".

A -> aAC | aC | B

B -> bB | bC

C -> cC | c

Я могу ошибаться здесь. Но вот как вы должны думать при создании CFG.

Другие вопросы по тегам