Програмне забезпечення основане на використанні агентів

значення змінної Z. Деякі інтерпретатори PROLOG знаходять всі значення, зв'язане квантором існування. Для набуття всіх значень за допомогою інтерпретатора C-PROLOG потрібно повторювати призначене для користувача запрошення;.

2. Створення, зміна і моніторинг середовища PROLOG

При написанні програми на мові PROLOG спочатку створюється база даних специфікації. Для додавання нових предикатів до специфікації в інтерактивному середовищі застосовується предикат assert. Так, за допомогою команди до специфікації додається предикат likes (david, sarah). Тепер у відповідь на запит буде повернений результат

За допомогою предиката assert можна контролювати додавання нових специфікацій в базу даних. Предикат asserta (P) додає предикат P в початок списку предикатів з ім'ям P, а assertz (P) — в кінець списку предикатів Р. Це важливо для побудови ієрархії і вибору пріоритетів пошуку. Для видалення предиката P з бази даних використовується предикат retract (P). Слід зазначити, що в багатьох реалізаціях мови PROLOG предикат assert поводиться більш непередбачувано, тобто точний час додавання нового предиката в середу може залежати від багатьох інших чинників, що впливають як на порядок проходження предикатів, так і на реалізацію повернень.

Створення специфікації шляхом послідовного використання предикатів assert і retract — дуже утомливий процес. Натомість можна створити файл, що містить всі специфікації для мови PROLOG, за допомогою звичайного редактора. Після створення файлу (назвемо його my file) потрібно викликати PROLOG і помістити весь файл в базу даних за допомогою команди consult. Так, запит додає предикати, що містяться у файлі my file, в базу даних. Існує і коротка форма предиката consult, яку доцільно використовувати для додавання в базу даних декількох файлів. При цьому використовується наступне позначення

Предикати read і write використовуються для взаємодії з користувачем. Команда read (X) прочитує наступний терм з поточного вхідного потоку і додає його до X

Вхідні вирази розділяються крапкою. Команда write (X) поміщає X у вихідний потік. Якщо X — не зв'язана змінна, то виводиться ціле число, перед яким розташовується символ підкреслення. Це ціле число представляє внутрішній реєстраційний номер змінної, необхідний для роботи середовища доведення теорем.

Предикати see і tell використовуються для прочитування інформації з файлу і запису у файл. Команда see(X) відкриває файл X і визначає поточний вхідний потік, як породжений в X. Якщо змінна X не пов'язана з існуючим файлом, то команда see (X) завершується невдачею. Аналогічно команда tell (X) відкриває файл для вихідного потоку. Якщо файлу X не існує, то команда tell (X) створює файл, ім'я якого співпадає із зв'язаним значенням X. Команди seen(X) і told(X) закривають відповідні файли.

Вступ в LISP

—. . . Заголовок цієї пісні називається "Гудзички для сюртуків" — Ви хочете сказати — пісня так називається? — запитала Аліса, прагнучи зацікавитися піснею.

— Ні, ти не розумієш, — відповів нетерпляче Лицар. — Цей заголовок так називається. А пісня називається "Стародавній старичок".

— Мені треба було запитати: це у пісні такий заголовок ? — видужала Апіса.

—Та ні, заголовок зовсім інше. "З горем навпіл"! Але це вона тільки так називається!

1 2 3 4 5 6 7 8

Схожі роботи

Реферати

Курсові

Дипломні