title: How to determine if a language is recursive or recursively enumerable?
body: <p>I have to determine whether a language (for example L={a^n b^m c^s | 0&lt;=n&lt;=m&lt;=s}) is regular, context-free, recursive, recursively enumerable or none of them.</p>
  
  <p>I know how to determine if a language is regular (find a DFA or regular expression that works) or context-free (find a PDA or context-free grammar that works); I know that a recursive language has a Turing machine that always halts and that a recursively enumerable language has a Turing machine that may not halt. </p>
  
  <p>So the question is: is there a fast criteria to determine whether the language is recursive or recursively enumerable or neither? For example, I don't have to build a PDA to understand that a language is context-free, I can't see it by the fact that it requires one stack; is there a similar fast approach to the problem (that hopefully saves the trouble to build a Turing machine)?</p>