Список исправлений и примечаний к определению Акторного Пролога

В этом файле перечислены все изменения, которые были внесены в текст определения языка от 31 мая 1996 года:

Морозов А.А., Обухов Ю.В. Акторный Пролог. Определение языка программирования. - Москва, 1996. - Препринт ИРЭ РАН 2(613). - 57с.


12.07.1996. Примечание

Механизм предикатов с переменным числом аргументов действительно позволяет во время исполнения программы формировать список (в смысле "составной терм") аргументов, переданных в собственное предложение.

Например, программа

project is ('MAIN')

class 'MAIN' using 'ALPHA' is
con     = ('WINDOW',name=console)
[
goal:-
        p(1,2,3,4,5,6,7,8,9).
--
p(_,_,R*):-
        con ? writeln("Rest= ",R).
]
напечатает:
Rest= [3,4,5,6,7,8,9]

Механизм предикатов с переменным числом аргументов необходим для того, чтобы можно было создавать предопределённые классы, реализующие привычные для других языков программирования операторы ввода-вывода, такие как

write(Terms*), writeln(Terms*), writef(FormatString,Terms*).


5.08.1996. Изменение

Внесены изменения в разделы "Недоопределённые множества" и "Атомарные формулы". Введены понятия "ключ" недоопределённого множества и "хвост" списка/множества. Исключены понятия "главный элемент" множества и "хвост списка".

Теперь являются допустимыми недоопределённые множества вида

K{a:1,b:2,c:3}, f{|Rest}, H{x:5|_}, 179{name:N,date:X}
и предложения вида
{x:72,y:14,p:no|Rest}:-
        output_1 ? event{|Rest}.
{x:N|_}:-
        {p:N,mode:stop|_}.

Причина изменений. Данное изменение внесено после экспериментов по трансляции SADT диаграмм в Акторный Пролог.


12.04.1997. Очень много изменений

1. Исправление в разделе "Недоопределённые множества"

В составе недоопределённых множеств разрешено не указывать значения некоторых элементов. Например, теперь являются допустимыми недоопределённые множества вида

{1, 3, 5, 7 |_}, {35, 12}, {red, yellow, blue |Rest}.

2. Разработаны средства для имитации объявления и вызова функций

Введены новые понятия - "вызов функции" и "объявление функции".

"Объявления функций" и "вызовы функций" позволяют имитировать объявление и вызов функций, возвращающих значения - термы. В процессе трансляции, вызовы функций преобразуются в вызовы предикатов, а объявления функций - в заголовки предложений.

Вот, например, как можно определить функцию append, добавляющую новые элементы в конец списка:

append([],L) = L.
append([H|L1],L2) = [H | ? append(L1,L2)].
В процессе трансляции такое определение будет преобразовано к виду
append(L,[],L).
append(R0,[H|L1],L2):-
    append(R1,L1,L2),
    R0 == [H | R1].

Это изменение внесено по мотивам языка Флэнг А.В.Манциводы. Однако, в отличие от функционально-логических языков, в Акторном Прологе поддерживается "строго логический" стиль программирования, поэтому, например, перед любым вызовом функции в Акторном Прологе всегда ставится префикс (обычно "?"). Возможно, что такое обозначение в некоторых случаях окажется несколько громоздким, однако в контексте логического языка оно является более наглядным, чем просто смешивание термов и вызовов функций.

Внесены изменения в список терминов и определений, в разделы "Введение", "Определение данных", "Списки", "Собственные предложения", "Атомарные формулы", "Сводка синтаксиса языка", "Список понятий языка".

Добавлены новые разделы "Подцели предложений", "Вызовы функций", "Простые атомы", "Бинарные отношения".

Добавлены новые нетерминальные символы "вызов_функции", "конструктор_или_атрибут", "объявление_функции", "простой_атом", "бинарное_отношение".

3. Изменение терминологии!

Термины "подавление акторов" и "подавленный актор" признаны не совсем удачными и заменены на термины "нейтрализация акторов" и "нейтральный актор".

Термин "неактивный актор" заменен на "доказанный актор".

4. Изменение арности встроенных предикатов

Встроенные предикаты '==' и ':=' разрешено использовать с произвольным числом аргументов. Например, теперь являются допустимыми вызовы предикатов
'=='(A,B,C) и ':='(NewValue).

5.05.1997. Изменение

Внесены изменения в раздел "Введение".


23.06.1997. Добавление

В качестве приложения к тексту определения опубликован доклад А.А.Морозова на II международной конференции "Дискретные модели в теории управляющих систем", проходившей 23-28 июня 1997 года в пансионате МГУ "Красновидово", в котором рассказывается об основных принципах и подходах, положенных в основу проекта.


9.07.1997. Изменение

Внесены изменения в разделы "Введение" и "Структура программы", а также в приложение "Термины и определения".

Изменен дизайн HTML-страниц.


25.09.1997-15.10.1997. Изменения

1. Исправлена ошибка в синтаксическом правиле

Исправлена ошибка в синтаксическом правиле "элемент множества". Добавлено новое синтаксическое правило "имя элемента".

2. Изменение терминологии!

Термин "активное значение общей переменной" признан неудачным и заменен на новый термин - "актуальное значение общей переменной". Кроме того, вместо термина "распространение активных значений общих переменных" теперь используется понятие "актуализация значений общих переменных".

3. Новые понятия!

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

4. Добавлены новые синтаксические правила

Добавлены новые синтаксические правила "собственное_предложение", "заголовок_внешнего_предложения", "объявление_внешних_вызовов". Изменено синтаксическое правило "предложение".

5. Отредактирован весь текст определения


14.01.1998. Изменения и дополнения

1. Обнаружена и устранена неоднозначность синтаксиса подцелей собственных предложений

Изменено синтаксическое правило "подцель". Добавлено новое синтаксическое правило "простая подцель".

2. Изменены правила построения процедур

Введено понятие "метапредложение". Принято соглашение о том, что арность предикатов с переменным числом аргументов в ходе трансляции неопределена, и метапредложения разрешается использовать в соответствующих процедурах вместе с обычными предложениями в любом порядке.

Например, допустимым является следующий порядок предложений:

p(1,2,3).
p(X|R*):-
    u(X,R).
p(1,2,3,4,5).
p(1,2,3,4,5,6,7).
p(Z|T*):-
    write(Z,T).

3. Добавлена ссылка на материалы конференции РАПРОС97

В качестве приложения к тексту определения добавлена ссылка на доклад А.А.Морозова и Ю.В.Обухова на IV международной конференции "Развитие и применение открытых систем", проходившей 27-31 октября 1997 года в Нижнем Новгороде.


20.03.1998. Изменения

1. Обнаружена и устранена ошибка в кодировщике Alt->1251!

Извините, в кодировщике Alt->1251 оказалась ошибка, вследствие которой он неправильно перекодировал буквы "ё" и "Ё". Ошибка устранена.

2. Исправлены опечатки

Исправлены опечатки в разделах "Объявления функций" и "Пример определения сети акторов".

3. В разделе "Откат программы" добавлено условие!

В разделы "Откат программы" и "Согласование акторов" внесены изменения и дополнения.

4. Новые понятия!

Добавлены новые понятия "реагирующие системы", "средства управления" и "задержанный актор". Внесены изменения в разделы "Введение" и "Структура программы".

5. Мелкие исправления

Внесены изменения в разделы "Переменные", "Атрибуты классов", "Построение экземпляров классов", "Проект", "Трансляция программных модулей", "Предложения классов", "Вызовы функций", "Объявления функций", "Акторы", "Актуализация значений общих переменных", "Встроенные предикаты и операторы".


22.03.1998. Изменения

Текст определения отредактирован. Внесены стилистические исправления.


26.06.1998. Защищена диссертация

Полный текст определения Акторного Пролога от 22 марта 1998 года опубликован в приложении к диссертации

Морозов А.А. Логический анализ функциональных диаграмм в процессе интерактивного проектирования информационных систем: Диссертация на соискание учёной степени кандидата физико-математических наук. - М., 1998. - 199с.
(http: // www.cplire.ru / Lab144 / auto.html)


22.03.1998. Изменения

Текст определения отредактирован. Внесены стилистические исправления.


10.09.1998. Добавление

Добавлена ссылка на текст доклада А.А.Морозова, Ю.В.Обухова и А.Я.Олейникова "Логическое программирование открытых систем", прочитанного на XI международной конференции "Логика, методология, философия науки", проходившей в Обнинске в 1995 году.


5.05.1999. Изменения и добавления

1. Уточнен термин

В список терминов внесено понятие "использование переменной актором" (а также его синонимы "принадлежать актору" и "соответствие переменной актору").

2. Добавлено определение

В список терминов добавлено понятие "сцепление переменных".

3. Отредактированы разделы

Отредактированы разделы "Атрибуты классов", "Инициализаторы", "Предложения классов", "Акторы", "Общие переменные", "Построение общих переменных", "Согласование акторов".


18.10.1999. Новые статьи

В качестве приложения к тексту определения опубликованы статьи:


22.06.2001. Новая статья

В качестве приложения к тексту определения опубликована статья:

Morozov A.A., Obukhov Yu.V. On the Problem of Logical Recognition in the Dynamic Internet Environment // Pattern Recognition and Image Analysis. - 2001. - Vol.11. - N2. - pp.454-457.
(http: // www.cplire.ru / Lab144 / pria5.pdf)

14.09.2001. Исправлен список терминoв

Внесены стилистические изменения в перевод некоторых терминов.


14.09.2001. Опубликован полный текст диссертации

На сайте опубликован полный текст диссертации
Морозов А.А. Логический анализ функциональных диаграмм в процессе интерактивного проектирования информационных систем: Диссертация на соискание учёной степени кандидата физико-математических наук. - М., 1998. - 199с.
(http: // www.cplire.ru / Lab144 / thesis.pdf)
Диссертация опубликована в формате PDF. Приложение A диссертации (определение Акторного Пролога) приведено в соответствие с версией языка от 14.09.2001, поэтому размер документа увеличился на одну страницу.


14.09.2001. Новая статья

В качестве приложения к тексту определения опубликована статья:

Morozov A.A., Obukhov Yu.V. An Approach to Logic Programming of Intelligent Agents for Searching and Recognizing Information on the Internet // Pattern Recognition and Image Analysis. - 2001. - Vol.11. - No.3. - pp.570-582.
(http: // www.cplire.ru / Lab144 / pria570m.pdf)

7.01.2002. Новая инкарнация :-)

Опубликовано определение параллельного Акторного Пролога. Язык очень сильно изменился. Появилось много новых терминов, и кроме того, изменено значение многих ранее существовавших терминов - некоторые из них обобщены, некоторые, наоборот, конкретизированы. Коренным образом изменилась стратегия управления. За счёт явного использования процессов, удалось упростить акторный механизм. Теперь в языке используется статическое построение акторов и миров в отдельных процессах, то есть количество миров и акторов, соответствующих процессу, не изменяется в ходе его исполнения. Динамическое изменение топологии пространства поиска и акторной сети теперь осуществляется с помощью механизма подключения/отключения процессов. Новая стратегия управления позволяет математически корректным образом передавать миры в качестве аргументов предикатов.

В случае возникновения проблем терминологического характера при чтении старых статей, мы рекомендуем Вам использовать старое определение последовательного Акторного Пролога, опубликованное в приложении к тексту диссертации
Морозов А.А. Логический анализ функциональных диаграмм в процессе интерактивного проектирования информационных систем: Диссертация на соискание учёной степени кандидата физико-математических наук. - М., 1998. - 199с.
(http: // www.cplire.ru / Lab144 / thesis.pdf)

Начиная с этого момента сообщения об изменении текста определения будут публиковаться в другом файле.


Back to Research Divisions
IRE RAS Homepage