|
Декларативный язык, наследник Lola. Если Lola описывала радиодетали, то Lomo описывает программные агенты, которые действуют по сути одновременно, как радиодетали. Отсюда основные принципы, единственное присвоение, декларативный подход, параллельно-беспорядочное исполнение инструкций.
|
|
Декларативный язык, наследник Lola. Если Lola описывала радиодетали, то Lomo описывает программные агенты, которые действуют по сути одновременно, как радиодетали. Отсюда основные принципы, единственное присвоение, декларативный подход, параллельно-беспорядочное исполнение инструкций.
|
|
|
|
+Так как язык декларативный, инструкций существует ровно одна - присвоение. При этом присвоение каждой переменной может быть выполнено лишь один раз. Однако при этом неважен порядок следования присвоений, так как предполагается, что они будут выполнены по сути одновременно. При этом, конечно, на реальных машинах будет задействована блокировка чтения значений из переменных до момента записи вычисленных значений, однако в работе с LOMO не стоит расчитывать на этот факт, так как нарушается абстракция.
|
|
|
|
+При таком подходе иначе выглядит модульность. Модули всё так же представляют клиентам переменные для чтения и записи, но при этом все модули исполняются параллельно, а для клиентов модули представлены как экземпляры объектов, хранящиеся в переменных. Работа всех модулей начинается одновременно, и здесь действует то же правило доступа к переменным, что и внутри одного модуля, чтение значения возможно только после записи. При этом существенно разделяют переменные только для чтения и переменные только для записи.
|
|
|
|
+Отдельным видом переменных является регистр. Если обычные переменные возникают при старте агента и пропадают при его исчезновении, то регистры способны запомнить информацию между циклами жизни агента. При этом принцип единственного присвоения распространяется и на регистры. А так же значение, присвоенное регистру станет доступно для чтения только в следующей жизненном цикле агента. Таким образом реализуется внутреннее состояние агента/системы агентов.
|