Я столкнулся с ними по автоматике. Среди стандартных шести языков программирования контроллеров есть графический язык SFC (sequential flow chart). У него две разновидности (см. описание
Codesys v.2): нестандартный (для каждого состояния описываются три процедуры: enter, during и exit, выполняемые при активации, во время активности (каждый скан) и при деактивации), и стандартный - привязка действий (actions) c условиями).
Но более продвинутая версия это Stateflow в MatLab / Simulink. Рисуются немного по-другому. Там ещё можно выполнять действия во время перехода (причём даже во время такого, который мог состояться, но не состоялся). Кроме условий перехода и функций enter, during, exit есть ещё события (events) и их обработка. Можно оформить в виде классических схем Мура и Мили (но сомневаюсь, что кто-нибудь это делает). Есть дополнения в виде логических таблиц и логических схем переходов. Почитать можете просто
документацию. (русский перевод можно найти на сайте exponenta.ru). Хорошее введение в плейлисте экспоненты
Управляющая логика.
Как вы поняли, я вам привёл два примера реализации, а не саму математическую теорию. (если же брать математику, то и её бы я реализовал на Haskell, поскольку там любая математика описывается очень лаконично).
(кстати, уже есть на Haskell
пример)