Hello World!

Акторный Пролог это объектно-ориентированный логический язык, поэтому программа на Акторном Прологе состоит из классов. У каждого класса есть имя. В состав класса входят слоты и предложения.

Рассмотрим первый пример (см. файл Hello.A).

Пример. Программа Hello World.

-------------------------------------------
-- An example of Actor Prolog program.   --
-- (c) 2002, Alexei A. Morozov, IRE RAS. --
-------------------------------------------

project: (('Hello'))

class 'Hello' specializing 'Console':
[
goal:-
        writeln("Hello World!").
]

Эта программа состоит из одного-единственного класса 'Hello'. В состав класса 'Hello' входит единственное предложение goal. В предложении есть одна подцель writeln. В Акторном Прологе, каждый раз когда создаётся экземпляр какого-нибудь класса, в нём автоматически вызывается предикат goal. Таким образом, при создании экземпляра класса 'Hello', в нём будет вызван предикат goal, который напечатает сообщение "Hello World!".

Создание экземпляров классов ("миров") осуществляется с помощью доказательства конструкторов экземпляров классов, специальных выражений, представляющих собой имя класса, заключённое в круглые скобки. Если в конструкторе использовать двойные круглые скобки, то это будет уже конструктор процесса. Экземпляр класса, созданный с помощью конструктора процесса, станет отдельным процессом программы. То есть он будет выполняться параллельно по отношению к другим процессам.

В первой строке программы задан как раз такой конструктор процесса, определяющий экземпляр класса 'Hello'. С помощью ключевого слова project этот конструктор процесса назначается целевым утверждением программы. Это означает, что исполнение программы должно начаться с создания экземпляра класса 'Hello'. При этом будет автоматически вызван предикат goal, который напечатает требуемое сообщение.

Обратите внимание, что класс 'Hello' с помощью ключевого слова specializing объявлен потомком предопределённого класса 'Console', в котором реализованы некоторые полезные предикаты для ввода-вывода и, в том числе, необходимый нам предикат writeln.

Перед тем как запустить программу, разверните окно плеера с помощью кнопки :



Рис. 1. Свёрнутое окно плеера.

Затем нажмите кнопку и выберите файл Hello.A в каталоге примеров:



Рис. 2. Загрузка программы.

Вот что программа напечатала на экране:



Рис. 3. Результаты работы программы.

Функции кнопок плеера соответствуют интуитивному смыслу их обозначений.

  • - загрузить и исполнить программу.
  • - исполнить уже загруженную программу.
  • - сохранить текущее состояние программы в файле и приостановить её исполнение.
  • - остановить программу.
  • - свернуть панель управления плеера.
  • - развернуть панель управления плеера.
  • - изменить параметры плеера.
  • - показать справочную информацию.

Обратите внимание, что плеер использует следующие расширения файлов:

  • A - исходный текст на Акторном Прологе.
  • Run - состояние приостановленной программы (при сохранении состояния программы помимо файла Run создаются также вспомогательные файлы с расширениями Bin и Sys).
  • Bin - оттранслированная программа.
  • IDL - SADT диаграмма. Может быть загружена и исполнена как самостоятельная программа.

Удачи!

Оглавление