Параллельность, цикл и такт, фазы, связи.

Так как сущности отделены друг от друга и независимы (свойство объектностиProperties_of_model), то они функционируют параллельно во времени и пространстве. Для имитации этого на компьютере каждую сущность (имидж) рассчитывают отдельно от других. Но компьютер вынужден произвести их обработку последовательно, по очереди, так как процессор чаще всего один. Поэтому, пока обрабатывается один имидж, другие (уже обработанные и пока еще не обработанные) заморожены. Время, необходимое на обработку всех имиджей по одному разу, называется тактомSpace_and_time среды. После выполнения одного такта (шага) можно произвести еще один, так же, как первый раз, и так далее. То есть сущности рассчитываются в цикле. Главное, что отличает моделирующую объектную среду от парадигмы программирования, это то, что каждое выражение вычисляется на каждом шаге, то есть существует в мире  всегда, а не иногда (этот принцип реализуется в электронных, механических и других материальных устройствах). Чтобы выключить выражение из постоянной обработки, требуются специальные действия (замораживание). Заметим, что это - математический (информационный, функциональный) подход к описанию систем, и он совсем отличается от другого, алгоритмическогоProperties_of_model подхода описания систем.

Совокупность значений переменных имиджа на шаге называется состояниемState. Так как сущность содержит закон поведения, как-то зависит от времени, то скорее всего состояния ее на разных шагах будут  различными. Изменение состояния сущности во времени это поведение или траектория.

Чтобы сущностиProperties_of_essence чувствовали друг друга, взаимодействовали, влияли друг на друга, необходимо проимитировать их связиLink. Для этого необходимо указать какая переменная одной сущности связана с какой переменной другой сущности. После связывания пользователем нужных переменных среда объявит их эквивалентными, то есть они будут иметь одно и тоже значение. В математике это соответствует установлению тождества между переменными. Конечно, связывание должно иметь смысл для пользователя. Аккуратность мышления здесь необходима, так как при соединении двух переменных, имеющих различные значения, какое-то одно значение из них будет потеряно. Обычно пользователь хорошо осознает, что в его схеме является приемником, а что - источником информации, и путаницы не происходит. Но иногда это может приводить к ошибкам. В другом случае, имиджи, существуя совместно, реализуют вместе систему уравнений; тогда связывание означает полную тождественность двух переменных по определению (двух значений просто не может быть).

Пока оставшиеся сущности на шаге не обработаны, они не должны видеть, что обработанные ранее уже изменили свое состояние (эффект гонок). Обменяться информацией, новым состоянием переменных, сущности должны синхронно и только тогда, когда они все готовы к этому, то есть в конце шага. Поэтому каждая переменная имеет два состояния: на начало такта (старое) и в конце такта (новое состояние). В среде можно получить как новое, так и старое значение переменной на шаге. В первом случае к обозначению переменной следует добавить знак тильда ~, например, ~x, в переменной x при этом хранится старое значение.

Когда все переменные пересчитаны и находятся в новом состоянии, среда осуществляет обмен информацией по связям и новое состояние переменных становится старым для нового такта, и цикл моделирования начинается снова. Реализуется так называемая двухфазная схема моделирования. По сути этим в среде реализуется принцип причинно-следственной временной связи - сначала происходит причина события, потом сигнал об этом проходит по связи, далее активируется следствие. Причина и следствие, таким образом, разделены во времени, и между ними реализуется задержка на такт.

Из стандартной технологии обработки есть исключения. Для ликвидации запаздывания информации на шаг (а в ряде случаев это необходимо) можно использовать: механизм тильды (~), уравнения (глобальные и локальные), механизм сообщений, механизм замораживания вычислений (enable),  управление порядком расчета (последовательность вычислений строк, рейтинг имиджей, флаги и управляющий имидж).

Причинно-следственная связь описывается в простейшем случае знаком присвоения :=. Например, y:=x+2, где x - это причина, а y - следствие. На первом шаге, если x примет значение 6, то y на втором шаге примет значение 8, а на первом его значение скорее всего будет неопределенно. При записи y:=~x+2 переменная y примет значение 8 сразу до конца первого шага 

Конечно, когда среда вычисляет выражения имиджа, она реализует математический метод вычисления. Этот метод изначально крайне прост - обычные математические правила вычисления операций (сложение, умножение, возведение в степень, функции, скобки, присвоение). Но если среда встречает специальные символы d/dt или уравнивание, то она должна применить определенный метод вычисления, которых из литературы известно множество. Среда автоматически подключает тот метод для обработки, который указан в ее настройках. НастройкиEnvironment_options___Methods можно менять, выбирая метод из предложенных. Если требуется использовать оригинальный метод, отсутствующий в списке выбора, то пользователь сам должен описать метод и подключить его к системе. Кроме этого, специальным образом можно обрабатывать одни имиджи одним методом, а другие - другим.

Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation