In computer science, in particular in automata theory, a two-way finite automaton is a finite automaton that is allowed to re-read its input.