Структура программы

Типовая программа содержит 5 разделов:
A) domains <описание доменов>(заголовок области, описание различных классов объектов программы);
B) database < описание предикатов динамической базы данных>(содержит утверждения базы данных, которые являются предикатами динамической базы; если программа такой базы данных не требует, то этот раздел может быть опущен);
C) predicates <описание предикатов> – служит для описания предикатов);
D) goаl <целевое утверждение> – (описание внутренней цели и подцелей);
E) clauses <утверждения> – все правила и факты, известные априори.
С целью упрощения организации фактов и правил ПРОЛОГ поддерживает составные объекты-структуры, которые строятся из шести базовых предписанных классов (доменов).

Стандартные типы доменов приведены в таблице:


Тип данных

Ключевое слово

Диапазон значений

Примеры

Символ

Char

Все символы

‘a’,’#’,’\13’

Целые

Integer

-32768    +32767

-63,64

Действительные

Real

+1E-307 +1E308

1.25E23, 4.56

Строки

String

Последовательность символов длиной <250

“today”,”123”

Символьные имена

Symbol

1. Последовательность символов, первая буква
2. Последовательность любых символов в “”

“Stars and Stripes”

Файлы

File

Допустимое имя

Mail.txt, BIRDS.DBA

Пример программы:
domains (раздел описания),
lich (человек), uvl (увлечение) = symbol,
predicates (отношение, предикат),
lubit (lich, uvl) (любит человек увлечение),
clauses (факты, правила),
lubit (lena, ping_ pong),
lubit (ivan, futbol),
lubit (tolya, basketbol),
lubit (mark, plavat),
lubit (lena, plavat),
lubit (boria, X): – lubit (tolya, X). –Боря любит то же, что любит Толя,
Alt+C – компиляция, Alt+R – запуск на счет, Alt+F-?
Вопросы, беседа с программой:
lubit (lena, plavat) – вопрос (истинно),
lubit (boria, futbol) – (нетрешения),

два решения

    
  lubit (lena, X),
Х = ping_pong
Х = plavat.
lubit (Х, futbol)             Х = ivan,
lubit (Х, Y) – напишет все решения.
Примечание. Здесь и далее курсивом выделены комментарии к программе, которые набирать не следует.
Выход из программы в интерактивном режиме завершается по клавише ESC.
Цель может быть составной:
lubit (Х, plavat), lubit (Х, ping_pong)?         Х = lena
Дополнительное задание: написать программу «Телефонный справочник».
tel (lich, nomer) – предикат
Факты: Аня – 240-385
Правила: телефон у Вики такой же, как у Ани. Какой телефон у Вики? и т.д.