高频问题

Feel free to ask questions either on Stack Overflow or in the GitHub issues. Questions from there will be added here over time.

What is a finite-state machine?
A finite state machine (FSM) is a mathematical description of the relationships between a finite number of states, and a finite number of events that can cause transitions between states. See the Wikipedia entry for more information.
What is a statechart?
A statechart is an extension to finite state machines, created by David Harel. They are more flexible than finite state machines because they support:
  • hierarchical (nested) states,
  • orthogonal (parallel) regions,
  • state actions (entry, exit, and transition actions)
  • history (shallow and deep) states.
This has the benefit of preventing state and transition explosion, which is a limitation of traditional finite state machines.
See the Wikipedia entry and David Harel’s original paper, Statecharts: a Visual Formalism for Complex Systems for more information.