Перейти к содержанию

Понятия

XState — это библиотека для создания, интерпретации и выполнения конечных автоматов и диаграмм состояний, а также для управления вызовами этих автоматов как субъектов. Следующие фундаментальные концепции информатики важны для понимания того, как наилучшим образом использовать XState и в целом для всех ваших текущих и будущих программных проектов.

Конечные автоматы

Конечный автомат — это математическая модель вычислений, которая описывает поведение системы, которая может находиться только в одном состоянии в любой момент времени. Например, предположим, что вы можете быть представлены конечным автоматом с конечным числом (2) состояний: asleep (спящий) или awake (бодрствующий). В любой момент вы либо спите, либо бодрствуете. Вы не можете одновременно спать и бодрствовать, и вы не можете ни спать, ни бодрствовать.

Формально конечные автоматы состоят из пяти частей:

  • Конечное число состояний
  • Конечное число событий
  • Исходное состояние
  • Функция перехода, определяющая следующее состояние с учетом текущего состояния и события.
  • Множество (может быть пустым) конечных состояний

Состояние относится к некоторому конечному качественному «режиму» или «состоянию» системы, моделируемой конечным автоматом, и не описывает все (возможно, бесконечные) данные, относящиеся к этой системе. Например, вода может находиться в одном из четырех состояний: ice (лёд), liquid (жидкость), gas (газ) или plasma (плазма). Однако температура воды может меняться, и ее измерение может быть количественным и бесконечным.

Дополнительная информация про конечные автоматы:

Диаграммы состояний

Диаграммы состояний — это формализм для моделирования реактивных систем с отслеживанием состояния. Ученый-компьютерщик Дэвид Харел представил этот формализм как расширение конечных автоматов в своей статье 1987 года «Диаграммы состояний: визуальный формализм для сложных систем». Некоторые из расширений включают:

  • Охраняемые переходы
  • Действия (вход, выход, переход)
  • Расширенное состояние (контекст)
  • Ортогональные (параллельные) состояния
  • Иерархические (вложенные) состояния
  • Историю состояний

Дополнительная информация про диаграммы состояний:

Модель акторов

Модель акторов (участников) — это еще одна очень старая математическая модель вычислений, которая хорошо сочетается с конечными автоматами. В нем говорится, что все является «актором», который может делать три вещи:

  • Получать сообщения
  • Отправлять сообщения другим участникам
  • Обрабатывать полученные сообщения (его поведение), например:
    • изменить свое локальное состояние
    • отправлять сообщения другим участникам
    • создавать новых актеров

Поведение актора можно описать с помощью конечного автомата (или диаграммы состояний).

Дополнительная информация:

Комментарии