Я постараюсь объяснить вам, используя язык непрофессионала и подсказки, чтобы вы могли его формализовать.
L
- это язык со всеми строками алфавита E={a,b}
, которых нет в языке L0
Это не обычный язык.
Строки в L
- это все строки, которые заканчиваются в не конечных состояниях DFA L0.Но поскольку вы не можете построить DFA / NFA для L0, у вас также не может быть DFA для L.
Причина: в L0
одно несвязанное число n, которое необходимо сохранить после просмотра всехЗатем используйте b, проверяя a, DFA не имеет памяти.Вы не можете написать регулярное выражение для вышеупомянутого языка.
Использование леммы Pumpping L не является языком без контекста
S = ab
- строка в L Использование PL я разделюв 5 частей
S=uvxyz
u="" v=a x="" y=b z=""
Теперь для n=0
новая строка будет S(n=0)=""
which is not in L
.
, если мы разделим ab на
u="" v="" x=a y=b z=""
Теперь дляn=2
S(n=2)=abb
which is not in L
Так что L не является CFG.
PS: Дайте мне знать, если вы найдете какое-либо отверстие в m