zHz00 Untitled

четверг, 24 августа 2023
04:38 Ещё пара слов о конечных автоматах
Кто не помнит, что такое конечный автомат, отсылаю сюда: diary.ru/~zHz00/p221557637_vozvrawenie-k-bejsik...

В общем, начальник написал конечный автомат. Но начальник не знал, что это был именно он. Поэтому вместо номера состояния у него был набор флагов. В зависимости от комбинации флагов выполнялся либо один кусок кода, либо другой, либо третий, и т.д.

Ну, во-первых, так делать не надо. Это затрудняет понимание написанного. Пока флагов всего 2-3, и они имеют понятный смысл -- ещё можно разобраться. Но когда флагов хотя бы пять -- уже начинаются проблемы. У меня. Потому что разбирать этот код потом пришлось мне.

Важно понимать, что такое конечный автомат, чтобы когда он по смыслу возник в коде -- его можно было сразу правильно сделать.

Второй момент -- порядок перехода между состояниями. Теоретически, переходы между состояниями могут быть произвольными. Но в моих задачах (и в задачах начальника) есть доминирующая последовательность состояний. Так вот, в исходном коде доминирующий порядок состояний должен совпадать с порядком кусков исходного кода. Так легче понимать, как происходит выполнение.

Как же куски кода были размещены у начальника? Они были размещены в обратном порядке. Ушло некоторое время на то, чтобы понять, что первым в тексте указан алгоритм последнего состояния, потом предпоследнего, и т.п.

@темы: Программирование, Говнокод

URL
Был на море - не проникся, море холодное, компания скучна...
*** Я блуждаю по городу мёртвому, Мысли - сбиты, а воло...
Сравнения отвратительны. Сравнения прекрасны. Весь ...
В офисе все дружно перешли на здоровый образ жизни. Завар...
...репетировал нейронный ансамбль. Ещё одна фантастическа...
Я тут проверяю задания на курсах эсперанто (http://www.ik...
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail