kpmy há 10 anos atrás
pai
commit
ac1bb5640d
1 ficheiros alterados com 16 adições e 5 exclusões
  1. 16 5
      Home.md

+ 16 - 5
Home.md

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