Automata theory is a theoretical branch of computer science that studies abstract machines and automata, as well as the computational problems that can be solved using them. The word "automata" comes from the Greek word "αὐτόματος," which means "self-acting, self-willed, self-moving". An automaton is an abstract self-propelled computing device that follows a predetermined sequence of operations automatically. There are four major families of automata: finite-state machines, pushdown automata, linear-bounded automata, and Turing machines. Automata theory is closely related to formal language theory, and automata are used as finite representations of formal languages that may be infinite. Automata are often classified by the class of formal languages they can recognize, as in the Chomsky hierarchy, which describes a nesting relationship between major classes of automata.