Лекция 5. Основы Турбо Пролога. Структура программы на Турбо Прологе. Директивы компилятора

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

Структура программы на Турбо Прологе

Программа на Турбо Прологе состоит из следующих семи разделов:

директивы компилятора;

CONSTANTS - раздел описания констант;

DOMAINS - раздел описания доменов;

DATABASE - раздел описания предикатов внутренней базы данных;

PREDICATES - раздел описания предикатов;

CLAUSES - раздел описания предложений;

GOAL - раздел описания внутренней цели.

В программе не обязательно должны быть все эти разделы. Так, например, она может состоять из одного описания цели:

GOAL

write("hello"),readchar(_).

Эта программа, вполне в императивном духе, выведет сообщение (с помощью стандартного предиката write) и будет ожидать нажатия пользователем любой клавиши (стандартный предикат readchar читает символ).

Однако, как правило, программа содержит, по меньшей мере, разделы PREDICATES и CLAUSES.

Если программа запускается в среде разработки Турбо Пролога, то раздел GOAL необязателен. При написании же программы, не зависящей от среды разработки, в ней необходимо указать внутреннюю цель.

В программе может быть несколько разделов описаний DOMAINS, PREDICATES, DATABASE и CLAUSES. Однако разделов GOAL не может быть в программе более одного.

Порядок разделов может быть произвольным, но при этом константы, домены и предикаты должны быть определены до их использования. Однако в разделе DOMAINS можно ссылаться на домены, которые будут объявлены позже.

Рассмотрим разделы немного подробнее.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: