A mathematical model of computation used to design both computer programs and sequential logic circuits, characterized by a finite number of states, transitions between those states, and actions.

"Finite state machines are widely used in software development for modeling application behavior, user interfaces, and game development."