Теория автоматов изучает классы алгоритмов, которые могут быть определены с использованием абстрактных машин (автоматов). Классы автоматов различаются с точки зрения ограничений, которым они подвергаются; для наиболее распространенных классов основное различие касается памяти и того, как переходы между состояниями могут получить к ней доступ. Более мощные классы могут определять более мощные алгоритмы; Согласно тезису Черча-Тьюринга, ни одна настоящая машина не является более мощной, чем машины Тьюринга.