текст статьи

-----------------------------------------------
-- Пример программы на Акторном Прологе.     --
-- (c) 2003, Алексей А. Морозов, ИРЭ РАН.    --
-- Построение теоретико-модельной семантики. --
-----------------------------------------------
-- Шаг 2. Все конструкторы процессов в       --
-- тексте программы заменяются обычными      --
-- конструкторами экземпляров классов.       --
-- Тем самым параллельная программа          --
-- преобразуется в последовательную.         --
-----------------------------------------------
project: (('Example'))
        -- В определении проекта двойные
        -- скобки оставлены, чтобы не нарушать
        -- синтаксис Акторного Пролога.
        -- На корректность осуществляемых
        -- преобразований это не влияет.
-----------------------------------------------
class 'Example':
--
p1      = ('C1');               -- Шаг 2
--
p2      = ('C2',                -- Шаг 2
                target=p1,
                protecting:output=data);
--
p3      = ('C3',                -- Шаг 2
                receiver=p1,
                suspending:input=data);
--
data;
--
[
goal.
]
-----------------------------------------------
class 'C1':
--
internal_data;
--
[
goal:-
        accept(internal_data).
--
accept(_).
--
message1(A):-
        internal_data== A.
--
function1()= 100.
function1()= 300.
function1()= internal_data.
]
-----------------------------------------------
class 'C2':
--
target;
output;
--
data    = target ?? function1();
--
[
goal:-
        output == data.
]
-----------------------------------------------
class 'C3':
--
input;
receiver;
--
[
goal:-
        receiver <- message1(input).
]
-----------------------------------------------

текст статьи