zHz00 Untitled

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

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

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

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

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

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

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

URL
Один умный человек сказал: Не бойтесь больших расходов...
После ремонта открылся бассейн в Лесных Далях, ура! На...
Хорошо быть не фанатом. Больные это люди. Самое страшное ...
когда училась в школе читала в "искусство кино"...
только что ходила покупать подарок и цветы коллеге по раб...
Оказывается можно убедить себя, что ты не устал, и устало...
Добавить комментарий

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

Подписаться на новые комментарии