Here is one way to carve up abstract (mathematical) automata into different classes of complexity (from low to high).
There is a somewhat different and older one that is based on the Chomsky Hierarchy (where ND stands for non-deterministic), and the associated language or grammar that they recognize:
- Finite-state Machine (Regular Languages)
- Non-deterministic Pushdown Automaton (Context-free Languages)
- Linear-bounded Non-deterministic Turing Machine (Context-sensitive Languages)
- Turing Machine (Recursively Enumerable Languages)
Further Reading:
https://en.wikipedia.org/wiki/Automata_theory
https://en.wikipedia.org/wiki/Chomsky_hierarchy
[*11.138]
<>