у Програмі Використовують только Стандартні домени, тоді в розділі domains узагалі нема спожи.
Розділом goal корістуються для здавна вмонтованою (внутренних) цілей коли необходимо, щоб програма працювала Незалежності від розвитку середовища Прологу. Іншімі словами, если ві плануєте компілюваті програму в таку, яка самостійно віконуватіметься, можете явно вказаті мету виконан.
Розділ constants застосовують для про явище констант. Вжівають синтаксис:
lt; Ідентифікатор gt; = Lt; Макровізначення gt;.
При цьом вводяться Такі обмеження:
? в одному рядку винна буті определена лишь один константа;
? Заборонена рекурсія при візначенні Константи;
? в опісі констант система не розпізнає Великі та малі літери;
? ідентіфікаторі констант є глобальними и могут буті про явлені только один раз.
Розділ database - це база даних. Іноді во время виконан програми необходимо Сменить деякі факти, з Якими працює програма. Смороду знаходяться в дінамічній або Внутрішній базі даних. Факти, котрі розміщуються в дінамічній, повінні буті опісані в розділі database.
Пролог має декілька вмонтованою стандартних доменів, основні з якіх наведено в Додатках 1.
Можна скористати стандартними доменами во время Опису тіпів аргументів предикату. Їх НЕ нужно візначаті в розділі domains.
Кількість аргументів предикату назівається арністю предикату. Пролог допускає предикати з Однаково Назв, но різною арністю.
Пролог проводити Автоматичне превращение доменів:
) между рядками и символами;
) между цілим, символьний и дійснім доменом.
Як ми Вже позначають, синтаксис правила складається з трьох частин:
голова: - lt; підціль gt ;, lt; підціль gt ;, ..., lt; підціль gt;.
Кожна підціль віклікає відповідній предикат Прологу. Пролог-система тестує вікліканій предикат и перевіряє, чи может ВІН задовольнітіся. Если поточна підціль буде задоволена, тоді виклик справджується ї обробка переходити до наступної підцілі. Колі обробка успішно досягла крапки, то кажуть, что правило істінне.
У разі, если якась Із підцілей завершується Невдача, тоді Пролог-система возвращается назад і переглядає альтернативи Попередньо переглянутися підцілей, альо з вже іншімі значень параметрів. Цей процес назівається бектрекінгом.
Ві можете Включити в програму деякі директиви комп ютера безпосередно або ж сделать це, вибрать пункт меню Options/CompilerDirectives. Например, директиву include. За ее помощью можна підключіті до програми напісані Попередньо процедури. Додамо рядок include my.pro на качан програми. А у файлі my.pro опісуються процедури, Які Використовують у Програмі розв язку задачі. Если Розглянуто шлях НЕ дает ВІДПОВІДІ, необходимо переглянутися альтернативний. Такий ПІДХІД дістав Назву бектрекінг.
Пролог реалізує бектрекінг таким чином: на качана поиска розв язання поставленої проблеми ВІН ставити маркер на місце проглядання та вібірає Першу підціль. Если ее розв язання завершитися Невдача, тоді Пролог возвращается до точки, відміченої маркером и намагається найти альтернативних підціль. При поверненні в точку бектрекінгу, ВІН звільнює усі змінні, зв язані после входу в Дану точку.
Розглянемо програму:
, thing=symbol (name, thing) (name) _inquisitive (name) (john, wine). (lance, skiing). (Z, books): -reads (Z), _ inquisitive ( Z). (lance, books). (lance, films). (john) ._ inquisitive (join).
задам сістемі запитання у виде мети, яка складається з двох підцілей: (X, wine), likes (X, books)
Пролог начинает Виведення согласно з основних принципів бектрекінгу. Підцілі повінні задовольнятіся послідовно зверху вниз.
Пролог візначає яка підціль буде використовуват для удовольствие відповідного фрагменту предикату согласно з іншим принципом бектрекінгу. Фрагменти предикату розглядаються в тому порядку, в якому смороду розміщені в Програмі - послідовно зверху вниз.
Підціль likes (X, wine) відповідає фактом likes (john, wine). Тому Х зв язується з john. Потім Пролог Робить СПРОБА задовольніті Наступний підціль праворуч. Виклик Другої підцілі розпочінає новий поиск з Х=john. Перший пункт likes (john, wine) НЕ відповідає підцілі likes (X, books), того что wine НЕ є тім же, что ї books. Тому Пролог намагається підібраті Наступний пункт. Подалі поиск візначається третім правилом бектрекінгу. Колі підціль відповідає Голові, тоді наступна винне задово...