В этом файле перечислены все изменения, которые были внесены
в текст определения языка от 31 мая 1996 года:
Морозов А.А., Обухов Ю.В.
Акторный Пролог. Определение языка программирования. -
Москва, 1996. - Препринт ИРЭ РАН 2(613). - 57с.
Опубликовано определение параллельного Акторного Пролога. Язык очень сильно изменился. Появилось много новых терминов, и кроме того, изменено значение многих ранее существовавших терминов - некоторые из них обобщены, некоторые, наоборот, конкретизированы. Коренным образом изменилась стратегия управления. За счёт явного использования процессов, удалось упростить акторный механизм. Теперь в языке используется статическое построение акторов и миров в отдельных процессах, то есть количество миров и акторов, соответствующих процессу, не изменяется в ходе его исполнения. Динамическое изменение топологии пространства поиска и акторной сети теперь осуществляется с помощью механизма подключения/отключения процессов. Новая стратегия управления позволяет математически корректным образом передавать миры в качестве аргументов предикатов.
В случае возникновения проблем терминологического характера
при чтении старых статей, мы рекомендуем Вам использовать
старое определение последовательного Акторного Пролога,
опубликованное в приложении к тексту диссертации
Морозов А.А. Логический анализ функциональных диаграмм
в процессе интерактивного проектирования информационных систем:
Диссертация на соискание учёной степени кандидата
физико-математических наук. - М., 1998. - 199с.
(http: // www.cplire.ru / Lab144 / thesis.pdf)
Старый список исправлений и примечаний к определению языка можно увидеть здесь.
Внесено исправление в раздел "Классификация сообщений". Теперь в определении языка явным образом указан порядок обработки прямых переключающих сообщений, прямых информационных сообщений и вычисления значений функций резидентов.
Внесено изменение в раздел "Числовые литералы". Теперь в конструкции "`графема" не разрешено использовать пробел. Использовать управляющие символы в этой конструкции также не разрешено, поскольку они не являются графемами.
Внесено изменение в синтаксические правила, относящиеся к использованию выражений и термов. Появились новые синтаксические понятия "термы_и_выражения" и "терм_или_выражение". Синтаксическое понятие "выражения" больше не используется. В целом, множество текстов, воспринимаемых транслятором как правильные программы, практически не изменилось (точнее, немного расширилось), просто определение и использование синтаксического понятия "выражение" теперь больше соответствует семантике выражений как видоизменённых вызовов функций.
В результате, теперь можно использовать выражения в качестве хвостов списков и недоопределённых множеств. Вот, например, как компактно можно определить функцию поэлементного сложения двух списков чисел:
'+'([N1|Rest1],[N2|Rest2])= [N1+N2|Rest1+Rest2] :-!. '+'([],[])= [] :-!.
В язык введены пакеты. Давно собирались это сделать, но всё было некогда. Теперь каждый исходный файл (пакет) программы имеет своё собственное пространство имён. Классы можно импортировать из одних пакетов в другие. Причём классы можно импортировать с переименованием. Эти синтаксические средства необходимы для поддержки визуального компонентного программирования. То есть, теперь добавление нового компонента в программу может быть реализовано просто как добавление нового блока (с именем компонента) на графической диаграмме. Все остальные действия по присоединению компонента могут быть выражены синтаксическими средствами (автоматически) создаваемой программы.
Добавлен новый раздел "Пакеты", внесены изменения в раздел о трансляции программных модулей (теперь он называется "Трансляция исходных файлов"). Появились новые понятия "пакет", "импорт классов", "импортируемый класс", "системный каталог". Добавлены новые синтаксические правила и синтаксические понятия, необходимые для реализации пакетов и импорта классов: "пакет", "заголовок_пакета", "имя_пакета", "команды_импорта", "команда_импорта", "импортируемое_имя". Сейчас понятия "исходный файл" и "пакет", фактически, оказались синонимами, поэтому мы стараемся избегать использования третьего синонима этого понятия - "программный модуль", хотя его смысл не изменился. В язык добавлены новые ключевые слова "package", "import", "from", "as". Внесены изменения в разделы "Свойства, зависящие от реализации" и "Дополнительные условия".
Термин "ключ недоопределённого множества" заменён на "заголовок недоопределённого множества", чтобы не вызывать неправильные ассоциации с ключами реляционных баз данных. В соответствии с этим изменением немного изменены синтаксические правила языка. Синтаксическое правило "ключ" больше не используется. Добавлено вспомогательное правило "элементы_и_хвост_множества".
Обновлён список опубликованных статей.
Обратите внимание на публикацию
Морозов А.А. Введение в Акторный Пролог. - Москва: 2002.
(http: // www.cplire.ru / Lab144 / start / r_index.html)
Мы рады сообщить Вам, что закончили работу над бета версией полной реализации Акторного Пролога. Пожалуйста, свяжитесь с нами, если Вы хотите принять участие в бета тестировании.
В правило пересмотра списка задержанных подцелей внесено важное добавление: просмотр списка задержанных подцелей должен осуществляться строго в том порядке, в котором они были в него добавлены.
Изменена терминология. Термин "множество задержанных подцелей" заменён на "список задержанных подцелей", а "пересмотр множества задержанных подцелей", соответственно, на "пересмотр списка задержанных подцелей".
Термин "абсолютное значение переменной" заменён на "глобальное значение переменной", чтобы не возникали ненужные ассоциации с абсолютными значениями чисел. Соответственно, "производитель абсолютного значения" теперь называется "производитель глобального значения", а "сорт абсолютного значения переменной" переименован в "сорт глобального значения переменной".
По результатам экспериментов с трансляцией языка, были введены дополнительно небольшие синтаксические ограничения. Можно сказать, что эти ограничения подразумевались и раньше, просто теперь они введены явно.
В разделе "Подцели предложений" указано, что если инфикс подцели равен "<<" или "<-", атом этой подцели не может быть метапеременной.
В разделе "Вызовы функций" указано, что в вызовах функций атом не может быть метапеременной.
В разделе "Исполнение вызова предиката" добавлено существенное уточнение, касающееся исполнения метапредложений. А именно, если атомарная формула исполняемого вызова предиката в составе метапредложения является метапеременной, и рассматриваемое метапредложение поставлено в соответствие вызову функции, данная подцель считается вызовом функции. Об этом сказано также в примечании к разделу "Вызовы функций".
И ещё одно уточнение, связанное с группированием предложений в составе классов. В разделе "Предложения классов" добавлено примечание о том, что предложения, в заголовке которых задано объявление функции, группируются по общим правилам, вместе с другими предложениями класса. При этом арность предикатных символов заголовков этих предложений определяется без учёта терма или выражения, возвращаемого функцией.
В разделе "Исполнение предложения" добавлено замечание, касающееся значений метаатомов в заголовках метапредложений.
Обновлён список опубликованных статей.
Добавлена новая статья
Morozov A.A., Obukhov Yu.V.
Development of the Methods and Tools for Mathematically
Correct Logic Programming of Internet Agents // Pattern Recognition
and Image Analysis. - 2003. - Vol.13. - No.2. - pp.225-227.
(http: // www.cplire.ru / Lab144 / pria225.pdf)
В программе генерации текста исправлена ошибка, из-за которой в индексе пропадал один из случаев использования понятия "символ в апострофах".
В разделе "Простые атомы" добавлено синтаксическое ограничение, которое неявно подразумевалось и ранее, а именно, указано, что для обозначения списка аргументов предиката переменной арности не разрешается использовать метафункторы.
Обновлён список опубликованных статей.
Добавлена новая статья
Morozov A.A.
Logic Object-Oriented Model of Asynchronous Concurrent Computations
// Pattern Recognition
and Image Analysis. - 2003. - Vol.13. - No.4. - pp.640-649.
(http: // www.cplire.ru / Lab144 / pria640.pdf)
Обновлён список опубликованных статей.
Добавлены новые статьи:
Morozov A.A.
Development and Application of Logical Actors
Mathematical Apparatus for Logic Programming of
Web Agents / Catuscia Palamidessi (Ed.),
Logic Programming: 19th International Conference, ICLP
2003 (Mumbai, India, December 9-13, 2003) Proceedings. -
Springer-Verlag, 2003. - LNCS 2916. - PP.494-495.
(http: // www.cplire.ru / Lab144 / iclp03.pdf)
(The poster: http: // www.cplire.ru / Lab144 / poster_07.ppt)
Морозов А.А.
Об одном подходе к логическому программированию
интеллектуальных агентов для поиска и распознавания
информации в Интернет // Журнал радиоэлектроники. -
2003. - Ноябрь. -
http://jre.cplire.ru/jre/nov03/1/text.html)
Мы рады сообщить Вам, что закончили работу над бета версией компилятора Акторного Пролога. В этой таблице приведены первые результаты тестирования. Пожалуйста, свяжитесь с нами, если Вы хотите принять участие в бета тестировании Акторного Пролога.
Обновлён список опубликованных статей.
Добавлены новые статьи:
Morozov A.A.
Operational Approach to the Modified
Reasoning, Based on the Concept of Repeated Proving and
Logical Actors / Salvador Abreu, Vitor Santos Costa
(Eds.), Proc. of the Seventh Colloquium on Implementation
of Constraint and Logic Programming. - Porto, Portugal,
September 8, 2007. - pp.1-15.
(http: // www.cplire.ru / Lab144 / ciclops07.pdf)
Morozov A.A.
Visual Logic Programming Method
Based on Structural Analysis and Design Technique /
Veronica Dahl, Ilkka Niemela (Eds.), Logic Programming:
23rd International Conference, ICLP 2007 (Porto,
Portugal, September 2007) Proceedings. - Springer-Verlag,
2007. - LNCS 4670. - pp.436-437.
(http: // www.cplire.ru / Lab144 / iclp07.pdf)
Back to Research Divisions
IRE RAS Homepage