DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 19:10

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Среда, 17 Июль, 2019 13:42 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
https://t.me/drakon_tech

До недавних пор у меня в голове был смысловой разрыв между иконами реального времени языка ДРАКОН (Вставка, Ввод) и конечными автоматами. И то, и другое моделирует динамику взаимодействия, но по-разному.

Конечный автомат – это деятельный, но неподвижный предмет, который взаимодействует с окружающим миром.
ДРАКОН-схема же содержит в себе историю, которая развивается во времени.

Мне было непонятно, почему эти два способа описания сходных динамических процессов никак не связаны.
Оказалось, что связь есть!

Вот как я это выяснил. Я работал над поддержкой асинхронных операций на JavaScript в Drakon.Tech. Идея состояла в том, что запуск долгоиграющего дочернего процесса и ожидание его завершения производятся в иконе Вставка. Пример – запрос к веб-сервису. Икона Вставка в Drakon.Tech примерно соответствует конструкции async/await.
Если же нужно дождаться сообщения от параллельного или родительского процесса, то применяется икона Ввод. Тоже как бы await, но без запуска дочернего процесса.

Довольно быстро выяснилось, что взаимодействующие процессы весьма удобно реализовывать в виде конечных автоматов. ДРАКОН-схема преобразуется в конечный автомат, причём для каждой иконы Вставка и Ввод создаётся отдельное состояние. Выполнение процесса происходит в виде работы конечного автомата, который движется от одного состояния к другому.
Какой из этого следует полезный для человечества вывод?

1. Когда в алгоритме есть история, то есть предопределённая последовательность, лучше использовать ДРАКОН-схемы с иконами Вставка и Ввод. Пример: алгоритм, который запускается при нажатии кнопки на пользовательском интерфейсе.

2. Когда алгоритм основан на реагировании, когда нет заранее прописанного ряда шагов, лучше создать конечный автомат в явном виде. Пример: управление анимациями и визуализацией в самом пользовательском интерфейсе.

Причём Drakon.Tech позволяет в одной программе комбинировать автоматы, написанные вручную и сгенерированные из асинхронных ДРАКОН-схем.


Вложения:
get-account-balance.png
get-account-balance.png [ 80.35 КБ | Просмотров: 2277 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB