A machine that has a number of states, and has logic determining the conditions under which it changes between those states.