Peter Almazov писал(а):
4. В псевдокоде, если есть цикл, так это цикл, у него есть границы, видна охрана, можно сформулировать инвариант и постусловие, наконец, его можно выделить как отдельную процедуру. В отличие от идиотского нагромождения гробиков со стрелками и фирменного изобретения "цикл со многими выходами"
Зато Вы теряете понятие "состояние". Вообще, я просто делаю вывод, что Вы не понимаете (в смысле, не чувствуете, не имеете опыта постоянного применения) формализма конечных автоматов.
Посмотрите, сколько раз у Вас возникает дублирование. Плевать бы на него, но в данном случае эти дублирующиеся блоки - суть одно состояние, в котором периодически оказывается система. Оно формально одно, т.е. неразличимо с точки зрения возможных дальнейших событий. И такие состояния у Вас "размазаны тонким слоем по периметру".
В самом первом приближении, разница между вычислением и управлением в том, что при вычислениях цель - обеспечить постусловие. И весь ход построения алгоритма направлен на обеспечение постусловия. Если я собрал алгоритм из структурных блоков, уверен в правильности каждого блока, то и уверен в правильности собранной конструкции.
В управлении цель - обеспечить правильную последовательность событий во времени. Постусловие может быть единственное - "последовательность событий была правильной". Сравните с вычислительной задачей, где последовательность, путём которой достигнуто постусловие - вычислен результат - никого не интересует.
Переписать Вы переписали, но убили самое главное - я должен потратить уйму времени, чтобы понять, как Ваш алгоритм будет вести себя во времени. Вы подошли к алгоритму как к описанию вычисления; в контексте же управляющих задач алгоритм - это
грамматика на поведение, на последовательность событий во времени. И ДРАКОН - визуальное представление такой грамматики. Вы же не ставите в претензию НФБ и регулярным выражениям то, что там циклы "неправильные". Возьмите формализм Хоара из "Последовательных взаимодействующих процессов", наконец. А потом уже кидайтесь обвинениями в "недоучестве".
Кстати, несколько раз уже обращал внимание, что Вы в своих ремарках обращаете внимание только на то, как правильно написать-записать; а фактор последующего многократного чтения просто упускаете из виду.
Возможно, тоже специфика Вашей работы - сами один раз написали - всю жизнь потом работает без изменений?