Галузі застосування та принцип роботи мови програмування "Пролог". Керування процесом пошуку рішень, типи даних та використання списків. Рекурсивні процедури та цикли за допомогою пошуку з поверненням. Виконання арифметичних та логічних операцій.
Аннотация к работе
Пролог - декларативна мова програмування. Це означає, що за наявності необхідних фактів і правил, він може користуватися дедуктивними міркуваннями для вирішення тих або інших задач програмування. В Пролозі до рішень приходять шляхом логічного виведення чого-небудь на підставі деяких вже відомих фактів. Паскаль, Бейсик та інші традиційні мови програмування є процедурними, тобто програміст повинен описувати процедури крок за кроком, повідомляючи обчислювальній машині яким чином слід вирішувати задачу. Програміст, що вирішує задачу на Пролозі, повинен дати тільки опис задачі (основні правила і факти) та мету, а система сама визначить яким чином треба шукати рішення.
Галузі застосування Пролога.
? Транслювання мов. Пролог ідеально пристосований як для транслювання з однієї мови програмування на іншу, так і для перекладу з однієї людської мови на іншу.
? Будування експертних систем (ЕС) і баз знань ЕС.
? Виведення теорем, перевірка різноманітних теорій і будування пакетів у галузі штучного інтелекту, де потрібні властиві Прологу можливості проводити дедуктивні міркування.
? Побудова пакетів, основаних на символьній обробці.
? Побудова інтелектуальних інтерфейсів із програмним забезпеченням, щоб існуючі системи ставали доступними і дружніми до користувача.
? Реалізація динамічних баз даних.
Принцип роботи Пролога.
Пролог - це описова мова. Пролог використовує машину логічного виведення, що представляє собою процес логічного міркування про інформацію. Вона включає механізм зіставлення зі зразком, за допомогою якого здійснюється пошук невідомої інформації шляхом приведення у відповідність питань і відповідей, фактів і правил. Пролог намагається вивести, що деяка гіпотеза істинна, опитуючи певну сукупність інформації, про яку вже відомо, що вона істинна.
Знання Пролога - це кінцева сукупність фактів і правил, що задаються в програмі.
Однією з важливих властивостей Пролога є те, що крім знаходження відповідей на поставлені питання шляхом логічних міркувань він може розглядати альтернативні варіанти і знаходити всі можливі рішення, а не тільки одне перше.
Структура програм на Пролозі.
Програми на Пролозі представляють собою опис задачі і складаються з трьох основних розділів, причому перші два з них аналогічні декларативним або описовим розділам Турбо Паскаля.
? Імена і структури обєктів, що беруть участь у даній задачі.
? Імена відношень, існуючих між обєктами (предикати).
? Факти і правила (речення), що характеризують ці відношення.
Речення Пролога складаються з голови та тіла і бувають трьох типів: факти, правила та запити.
Факт представляє собою відношення між одним або кількома обєктами і містить твердження, що є завжди безумовно істинним. Факти - це речення, що мають порожнє тіло. Факт має наступний синтаксис: відношення(обєкт1,обєкт2,...,ОБЄКТN).
Правило представляє собою відношення, істинність якого залежить від деяких умов. Правила дають можливість Прологу здійснювати логічне виведення. Правила мають голову і непорожнє тіло. Правило має наступний синтаксис:
заголовок:-,,...,.
Приклад.дитина(Y,X):-батько(X,Y);
мати(X,Y).
Заголовок - це відношення (факт), істинність якого залежить від істинності списків умов в тілі правила. Це називається відношенням залежності.
Символ „:-” (якщо) розділяє заголовок і тіло правила.
Тіло представляє собою набір умов, який повинен бути істинним, щоб Пролог міг довести істинність заголовку правила.
Якщо підцілі тіла правила розділені комою, - це означає логічну конюнкцію, тобто повинні задовільнюватися всі підцілі, якщо ж підцілі розділені крапкою з комою, - це означає логічну дизюнкцію, тобто повинна задовільнюватися хоча б одна частина тіла правила - до або після крапки з комою.
Запити представляють собою речення без голови, тобто складаються з тіла, яке називається цільовим правилом. Після задання набору правил можна ставити питання або запити, що стосуються цих фактів. Запити мають наступний синтаксис: ,,...,.
Приклад.дитина(Y,”Петро”).
Машина логічного виведення Пролога бере умови правил та переглядає список вже відомих фактів і правил, намагаючись задовільнити ці умови. Пролог завжди шукає рішення починаючи з самої верхівки фактів і правил, послідовно переглядаючи кожен факт до самого кінця. Після задовільнення всіх умов заголовок правила вважається істинним, в іншому випадку правило ігнорується.
Тема 2. Основні розділи програми на Пролозі
Звичайна програма на Пролозі включає три або чотири програмних розділи: ? розділ доменів (domains);
? розділ предикатів (predicates);
? розділ мети (goal);
? розділ виразів (clauses).
Розділ clauses (факти і правила).
Це ядро програми, в якому містяться факти і правила, якими оперує Пролог, намагаючись досягти мети.
Вирази, що стосуються певного предикату, повинні розміщуватися в розділі clauses разом. Послідовність таких виразів, що визн