6

Are there intermediate language classes between regular languages and context-free languages that can be recognized by automata requiring extensions beyond standard DFA/NFA capabilities but without relying on a stack, like in PDAs?

Cal
  • 63
  • 5

1 Answers1

12

Counter machines

Arguably, one-counter machines represent one example of such a language class. A one-counter machine is a DFA that is augmented with a single counter; the DFA can set the counter to zero, increment the counter, decrement the counter, and test whether it is zero or not.

The class of languages accepted by a one-counter machine is in between regular and context-free languages, i.e., it is a strict subset of all context-free languages. See Which languages are recognized by one-counter machines? and Are the languages recognized by deterministic one-counter machines equivalent to deterministic context free language?.

However, this might not be a very satisfying answer, because a one-counter machine is trivially equivalent to a PDA where the stack alphabet has only a single symbol. So while from one perspective they don't involve a stack, from another perspective the counter can be viewed as just a "disguised stack" with extra limitations.

Time-bounded Turing machines

Another candidate might be the class of languages that can be recognized by a (deterministic, single-tape) Turing machine with running time $O(f(n))$, where $f(n)$ is some function such as $n \log n$ or $n^{1.5}$. In particular, it is known that every regular language can be recognized by a Turing machine with running time $O(n)$, and every context-free language can be recognized by a Turing machine with running time $O(n^3)$. It seems unlikely that it is possible to recognize every context-free language in $o(n^2)$ time. So, any function between $O(n \log n)$ and $O(n^2)$ provides a candidate for a language class.

However, this might not be a very natural class of languages.

D.W.
  • 167,959
  • 22
  • 232
  • 500