En (også kalt en ) er en matematisk modell som brukes til å designe dataprogrammer og digitale logiske kretser. Den kan ses på som en abstrakt maskin som kan befinne seg i én av et endelig antall tilstander. En utløsende hendelse eller betingelse kan få tilstandsmaskinen til å gå fra en tilstand til en annen, noe som kalles en transisjon. En endelig tilstandsmaskin defineres av en liste med mulige tilstander den kan gå til fra hver enkelt tilstand, og den utløsende betingelsen for hver transisjon.