Здравствуйте, C.A.B, Вы писали:
CAB>Не обязательно, для подобных блоков мы можем ожидать только первого сообщения и далее хранить его пока не будет получено новое.
Не понял, кто должен быть подобен? Т.е. где делается выбор — в блоке А или в блоке C?
CAB>Если система типов достаточно мощная, то выбор логики будет выполнятся прозрачно для пользователя. Если вы читаете Скалу, здесь как раз пример блоков где один вход "константный" а другий "ждущий": https://github.com/AlexCAB/MathAct/blob/master/mathact_examples/src/main/scala/examples/common/SimplePidExample.scala (Не работает вставка ссылок в MS Edge)
Недостаточно хорошо читаю, чтобы понять, что происходит.
S>>...сопоставление её с классическим образцом...
CAB>Дедушка Фрейд икнул 
Не знаю, причём тут фрейд. Я просто лет 15 тому назад участвовал в проекте по переписыванию подобной системы с TurboPascal на Delphi. И весь смысл был в том, что собсно сами симуляции, написанные ещё в 80х, нужно было гонять на новой системе. Если мы меняем вычислительную модель, то нужно уметь как-то переписывать симуляции со старого формата в новый — причём так, чтобы поведение сохранялось.
Сходу не вполне понятно, как это сделать, с учётом изменения понятия "шаг".
Либо я не догоняю в вашу идею — может быть, у вас понятие шагов в каком-то виде есть, и запрос "дай мне значение с шага N" отличается от запроса "дай мне значение с шага N+1".
А если писать симуляцию с нуля, то и вопросов возникать не будет — ну да, вот такие блоки, вот они так работают. Хочешь потреблять значение блока одновременно в двух местах- втыкай мультиплексор, иначе будешь получать смешение времён.