Подумайте только о части {0 ^ n 1 ^ n} на секунду. Замените 0
на (
и 1
на )
, и вы получите язык простых вложенных скобок, который является мертвой раздачей, что язык не является регулярным.
Добавление последнего 0 ^ n делает его контекстно-зависимым (т.е. не контекстно-свободным). Имейте в виду, что CFG может быть определен конечным компьютером с единственным стеком в качестве единственной структуры данных. Увидение 0 приведет к тому, что символ будет помещен в стек, а вид 1 выскочит из стека. Это гарантирует, что будет 0, а не 1, но тогда нет способа сопоставить больше 0.