4.1.3. КОНСТРУКТОРЫ

Конструктором называется утверждение о существовании экземпляра класса или резидента. В результате доказательства конструкторов происходит построение новых экземпляров классов и резидентов.

Различаются конструкторы миров (а именно простые конструкторы и конструкторы процессов), а также конструкторы резидентов.

 конструктор = конструктор_мира | конструктор_резидента
 конструктор_мира =
    простой_конструктор | конструктор_процесса

Простым конструктором называется элементарное логическое утверждение о существовании экземпляра класса.

 простой_конструктор =
    "(" имя_класса { "," определение_атрибута } ")"

Конструктор процесса - это утверждение о существовании процесса. Доказательство конструктора процесса приводит к созданию нового процесса.

 конструктор_процесса = "(" простой_конструктор ")"

Аргументы конструктора мира определяют значения слотов соответствующего экземпляра класса (значения слотов процесса).

Отсутствие инициализатора в определении некоторого атрибута конструктора с именем Name является допустимым только в том случае, если рассматриваемый конструктор экземпляра класса находится в области действия слота с именем Name. Такое определение атрибута эквивалентно определению вида "Name=Name".

В конструкторе экземпляра класса не допускается определение нескольких атрибутов с одинаковыми именами. Не допускается также определение атрибута self.

Конструктором резидента называется синтаксическая конструкция, определяющая резидента. Конструктор резидента определяет целевые миры резидента и соответствующую резиденту атомарную формулу. Доказательство конструктора резидента приводит к созданию нового резидента.

 конструктор_резидента =
    [ параметр_или_конструктор ] "??" простой_атом
 параметр_или_конструктор =
    целевой_параметр | конструктор_мира
 целевой_параметр = параметр

Атомарная формула в составе конструктора резидента является вызовом функции. В качестве простых атомов в конструкторе резидента не разрешается использовать метаатомы.

Пример. Правильно построенные конструкторы:

('R53',a=1,b=7,c=_,'d'), (('W',q=3)), ('E') ?? f(A)

Ссылки: атом 6.1, атрибут 4.1.1, вызов функции 6.2.1, значение слота 5.1, имя класса 4.1, инициализатор 4.1.2, конструктор мира 4.1.3, конструктор процесса 4.1.3, конструктор резидента 4.1.3, метаатом 6.1.1, мир 5.1, параметр 3.1, построение миров 5.4.1, простой атом 6.1.1, простой конструктор 4.1.3, процесс 5.2, резидент 5.3, слот 5.1, целевой мир 5.3, self 4.1.1.


Следующий: 4.2. ПРОЕКТ
Предыдущий: 4.1.2. ИНИЦИАЛИЗАТОРЫ СЛОТОВ


4.1. КЛАССЫ
КОРНЕВАЯ СТРАНИЦА
ОГЛАВЛЕНИЕ
СПИСОК ПОНЯТИЙ ЯЗЫКА (ИНДЕКС)