
Конечный автомат (FSM) — ловушка для программиста
rukhi7 2 часа назад Конечный автомат (FSM) — ловушка для программиста Простой 5 мин 2.4K Программирование * Производство и разработка электроники * Программирование микроконтроллеров * Мнение Всем привет, с вами вновь...
GPT-5.6 31 Temmuz 2026'da yayınlanacak mı?
Значимый прорыв формирует отрасль ИИ: rukhi7 2 часа назад Конечный автомат (FSM) — ловушка для программиста Простой 5 мин 2. 4K Программирование * Производство и разработка электроники * Программирование микроконтроллеров * Мнение Всем привет, с вами вновь сумасшедший профессор (хотя совсем не профессор и возможно не совсем сумасшедший). Разберем очередную актуальную тему или не очень актуальную.
Как конечные автоматы заставляют нас бросить решение реальной задачи и уводят в сферические псевдо-математические дебри. Или можно ли для произвольной задачи программирования найти практический смысл? Вот тут вот мне попался интересный пример попытки объяснения конечных автоматов как математической модели вычислений (офигеть!
Технические детали
):Понятие о конечных автоматах: руководство разработчика по предсказуемой логике приложений По моему идеальный пример чтобы разобрать как конечные автоматы (как пример паттерна проектирования) уводят нас в сторону от решения реальных задач программирования и проектирования программируемых функций электронных устройств. Казалось бы нет ничего проще светофора и это идеальный пример для демонстрации применения конечных автоматов и … того как восхищение конечным автоматом как математической моделью вычислений уводит нас не только от решения реальных задач при проектировании программы, но даже от элементарного понимания этих задач. Что же такое светофор с инженерной точки зрения?
На самом деле это три лампочки и три ключа для управления — включения-выключения каждой из этих лампочек. Наша вычислительная система (просто процессор) должна управлять состоянием ключей, а ключей у нас три и состояний получается тоже вроде бы три, правда состояния отдельных лампочек вроде бы проще, только ВКЛ и ВЫКЛ. Но это только для домохозяек.
Те кто маленько разбираются в электронике (а не только в языках… программирования) знают что состояний вообще говоря больше, так как вы можете включить лампочку, а она не включится! Это вообще можно учесть? Получается у композиции, даже такой примитивной как лампочка-ключ (выключатель), не два состояния, а вообще говоря четыре: включили лампочку-она горитвключили лампочку-она НЕ горитвЫключили лампочку-она не горитвЫключили лампочку-она (все равно!
Отраслевые последствия
) горит Как же это вообще программировать? Оказывается это надо не программировать, а понимать как это реализуется схемотехнически! У нас для каждой пары лампочка-ключ должен быть одна управляющая линия (контакт, нога, пин, GPIO, …) Иодна контролирующая-входная-сигнальная линия (контакт, нога, пин, GPIO, …)!
Итого у нас оказывается два бита состояния — один бит задаем мы, второй возвращает нам лампочка. Два бита — это четыре состояния, все сходится. Вот так вот мы выяснили что у одной управляемой лампочки может быть больше состояний чем у целого светофора!
Маленько попозже мы вернемся к этим четырем состояниям для одной лампочки, а пока вернемся к нашему целому светофору. Вообще-то, когда у светофора зеленый свет вскоре должен переключиться он начинает моргать, скажем три раза.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





