Описание задачи на Турбо-Прологе состоит из трех основных компонентов:
· Описание имен и структуры объектов, входящих в рассматриваемую задачу;
· Описание имен отношений, существующих между объектами;
· Предложения, описывающие отношения между объектами в виде совокупности фактов и правил.
Программа на Турбо-Прологе состоит из следующих разделов, среди которых можно выделить три секции
· CONSTANTS - раздел описания констант;
· DOMAINS - раздел описания областей определения;
· DATABASE - раздел описания предикатов внутренней базы данных;
· PREDICATES - раздел описания предикатов;
· CLAUSES - раздел описания предложений;
· GOAL - раздел описания внутренней цели.
Секции программы:
· Секция определения объектов (DOMAINS);
· Секция описания предикатов (PREDICATES);
· Секция предложений (CLAUSES)
В программе не обязательно должны быть все эти разделы.
Пример. Программа, состоящая из одного описания цели:
Goal
write("hello"), readchar(_).
Эта программа выведет сообщение "hello" с помощью стандартного предиката write и будет ожидать нажатия пользователем любой клавиши (стандартный предикат readchar читает символ).
|
|
Как правило, программа содержит, по меньшей мере, разделы predicates и clauses.
Если программа запускается в среде разработки Турбо-Пролога, то раздел goal необязателен. При написании же программы, не зависящей от среды разработки, в ней необходимо указать внутреннюю цель.
В программе может быть несколько разделов описаний domains, predicates, database и clauses. Однако разделов goal не может быть в программе более одного.
Порядок разделов может быть произвольным, но при этом константы, области определения и предикаты должны быть определены до их использования. Однако в разделе domains можно ссылаться на области определения, которые будут объявлены позже.
Раздел описания констант
Раздел, озаглавленный зарезервированным словом constants, предназначен для описания констант. Объявление константы имеет вид:
<имя константы>=<значение>
Имя константы должно быть идентификатором, то есть оно может состоять из латинских букв, цифр и знака подчеркивания, причем не может начинаться с цифры.
Каждое определение константы должно размещаться в отдельной строке.
Пример. Определить константы.