Я должен определить, является ли язык (например, L = {a ^ nb ^ mc ^ s | 0 <= n <= m <= s}) регулярным, не зависящим от контекста, рекурсивным, рекурсивно перечислимым или нет их. </p>
Я знаю, как определить, является ли язык регулярным (найти DFA или регулярное выражение, которое работает) или контекстным (найти КПК или контекстную грамматику, которая работает); Я знаю, что у рекурсивного языка есть машина Тьюринга, которая всегда останавливается, и что у рекурсивно перечислимого языка есть машина Тьюринга, которая может не останавливаться.
Таким образом, возникает вопрос: существуют ли быстрые критерии для определения того, является ли язык рекурсивным или рекурсивно перечислимым, или нет? Например, мне не нужно создавать КПК, чтобы понять, что язык не зависит от контекста, я не вижу этого в том, что для него требуется один стек; Есть ли такой же быстрый подход к проблеме (который, мы надеемся, избавит от необходимости строить машину Тьюринга)?