7. Автоматное программирование и язык ДРАКОНПочти через 25 лет после опубликования моей статьи о «правильном» построении схем алгоритмов появилась работа Митькина С.Б. Автоматное программирование на языке ДРАКОН // Программная инженерия. 2019. №1, c. 3-13 (
https://drakonhub.com/files/pe_drakon_a ... n_2019.pdf), в которой он ссылается на две мои книги, указанные выше, но не обращает внимания на два важных момента: во-первых, на главу 13 (
http://is.ifmo.ru/books/switch_pdf/_switch13.pdf) в одной из этих книг, опубликованной в 1998 г., которая базируется на указанной выше статье, а во-вторых, на то, что в этой книге приводятся примеры применения автоматного программирования в базисе различных языков программирования, в том числе и по стандарту IEC 1131-3. Естественно, что для этой цели могут использоваться и многие другие языки, например ДРАКОН, что и было сделано Митькиным.
Как бы там ни было, после опубликования статьи Митькина появился раздел «9. Автоматное программирование на языке ДРАКОН» в статье в Википедии об этом языке (
https://ru.wikipedia.org/wiki/ДРАКОН). Это произошло не ранее 2019 г. До этого я читал книги создателя ДРАКОНА В.Д. Паранджонова и ссылался на него, а он на меня – нет. Я ему даже безответно писал. В его работах не использовалось понятие «состояние», и в этом было принципиальное отличие автоматного программирования от его ДРАКОНА. У него правильно построенные граф-схемы – это всякое разное, а не граф-схемы, построенные изоморфно конструкции Switch, начиная с дешифратора состояний, как отмечено выше.
И еще один момент, на который Митькин не обратил внимание: графы переходов более обозримы, чем любые граф-схемы – хоть, с использованием ДРАКОНА, хоть построенные иначе.
До этого Митькин писал: «До недавнего времени у меня в голове был смысловой разрыв между иконами реального времени языка ДРАКОН (Вставка, Ввод) и конечными автоматами. И то, и другое моделирует динамику взаимодействия, но по-разному», а потом у него произошло ... «озарение»: «Взаимодействующие процессы весьма удобно реализовывать в виде конечных автоматов. ДРАКОН-схема преобразуется в конечный автомат, причем для каждой иконы «Вставка» и «Ввод» создается отдельное состояние. Выполнение процесса происходит в виде работы конечного автомата, который движется от одного состояния к другому» (
viewtopic.php?f=142&t=6631). Потом он пишет: «Конечные автоматы на ДРАКОНе – это бомба. Жаль, что земляне этого не понимают» (
viewtopic.php?f=142&t=6246). Я согласен с этим утверждением, но только без использования двух лишних слов: «Конечные автоматы – это бомба. Жаль, что земляне этого не понимают». По моему мнению, иконы целесообразно применять для другой цели, а в программирование следует использовать графы переходов.
Потом я узнал, что на сайте «Визуальный язык ДРАКОН» (
https://drakon.su/) с перечне форумов есть и такой: «Теоретические основы языка ДРАКОН» (
viewforum.php?f=156), а в нем – обсуждение на тему «Язык ДРАКОН и конечные автоматы» (
viewforum.php?f=142), где существуют страницы, на которых рассматриваются вопросы, связанных с автоматным программированием и мною.
На странице «Язык ДРАКОН. Метод Шалыто и важное предложение Игоря Мазницы» (
viewtopic.php?f=142&t=5950) мой старинный знакомый Игорь Мазница в 2016 г. обратил внимание автора языка на то, что я не доволен тем, что он не ссылается на меня. На это Паронджанов ответил: «Анатолий Шалыто прав. Отсутствие ссылок на его работы по автоматному программированию, Switch-технологии – большое упущение. В следующей книге я постараюсь обязательно устранить этот недостаток». Он, видимо, постарался, но у него не получилось: в его книге «Алгоритмы и жизненные ритмы на языке ДРАКОН. Разработка алгоритмов» (
https://drakon.su/_media/24_zhizneritm20.pdf), датированной 2019 г., нет ни слова ни обо мне, ни об автоматном программировании, ни о Switch-технологии.
В 2017 г. Мазница сообщил драконовцам о существовании записи моей лекции про автоматное программирование (
https://www.youtube.com/watch?v=tUo9ssPVa4c), и на их сайте появилась страница «Лекция Анатолия Шалыто про автоматное программирование» (
viewtopic.php?f=142&t=6133). О ней Степан Митькин написал «Отличная лекция. Просто, понятно, а главное – с душой». А еще им было сказано: «На днях я учинил у нас в офисе зачет по автоматам. Опросил нескольких программистов. Итог: все слышали это слово, но никто точно не знает, что это такое (хорошо в этой ситуации применять в программировании автоматы, что некоторые считают очевидным, А.Ш.). Похоже, автоматы – это какое-то тайное знание, доступное только элите и аннукам» (божествам, А.Ш.).
В 2018 г. у драконовцев всплыла упомянутая выше моя статья о правильном построении граф-схем (
viewtopic.php?f=142&t=6246). Пообсуждали...
В том же году на странице «А. Шалыто. Проектный подход при обучении разработке программ» (
viewtopic.php?f=142&t=6289) Паронджановым приведена половина (?) моей статьи «Проектный подход при обучении разработке программ» (
http://is.ifmo.ru/award/_doklad_uch_sovet.pdf), которая была опубликована в журнале Компьютерные инструменты в образовании. 2009. № 4, с. 32-38 (
http://ipo.spb.ru/journal/content/1074/Проектный подход обучении разработке программ.pdf). Этот текст на указанной странице никак не обсуждался...
В 2019 г. лекцию про автоматное программирование я выложил на YouTube в лучшем качестве, чем она была опубликована ранее (
https://www.youtube.com/watch?v=PPWTxceMutk&t=2821s).
На странице «Язык ДРАКОН, метод Шалыто, метод Ашкрофта-Манны» (
viewtopic.php?f=142&t=5724) Паронджанов пишет: «Анатолий Абрамович Шалыто в статье 1996 г. сравнивает свой метод с методом Ашкрофта-Манны и делает вывод, что его метод удобнее. Он не сравнивает свой метод с языком ДРАКОН, так как этот язык тогда был практически неизвестен». Как говорится: «Когда знаешь, как правильно, зачем делать иначе?» – ниже будет показано, что уже в 1991 г. при создании судовых систем управления мы успешно использовали автоматное программирование.