# State Machines

A **state machine** is an abstract representation of a system's state at a given point in time. A **transition** is the change from one state to another given a set of inputs.

There are two types of state machines: Finite, and infinite. A finite state machine (FSM) has a finite number of states and actions whereas an infinite state machine has an infinite number of states and/or actions. Generally, the term "state machine" refers to a finite state machine.

State machines can be depicted formally in a visual format, which makes them useful for describing complex systems.

## State Machine Resources

## Deeper Knowledge on State Machines

### Statecharts

A visual formalism for complex systems

### XState (JavaScript Library)

A library to create state machines and state charts written in JavaScript

## Broader Topics Related to State Machines

### Computer Science

The study of algorithms, data structures, information, and computation