Предмет:
Тип роботи:
Методичні вказівки
К-сть сторінок:
44
Мова:
Українська
МЕТОДИЧНІ ВКАЗІВКИ
щодо виконання лабораторних робіт
з курсу “Технологія програмування та створення програмних продуктів”
для студентів 4-го курсу
спеціальності “Інтелектуальні системи прийняття рішень” Частина 1. Логічне програмування
Методичні вказівки щодо виконання лабораторних робіт з курсу “Технологія програмування та створення програмних продуктів” для студентів 4-курсу з спеціальності “Інтелектуальні системи прийняття рішень”. Частина 1. Логічне програмування / Укл. Баклан І.В., Степанкова Г.А. - К.: НАУ, 2009. - 44 с.
ЗМІСТ
ЗМІСТ
Частина 1. МОВА ПРОГРАМУВАННЯ ПРОЛОГ
Частина 2. ЛАБОРАТОРНІ РОБОТИ
Частина 1. МОВА ПРОГРАМУВАННЯ ПРОЛОГ
Пролог (Prolog, програмування в логиці) - одна з найбільш широко використовуваних мов логічного програмування. Як і для інших декларативних мов, при роботі з нею ми описуємо ситуацію (правила й факти) і формулюємо мету (запит), дозволяючи інтерпретаторові Пролога знайти рішення задачі за нас.
Під інтерпретатором Прологу ми будемо розуміти механізм вирішення задачі за допомогою мови Пролог. Інакше кажучи, інтерпретатор мови Пролог - це виконавець Прологів-програм, тобто та "активна сила", що виконує програми, написані на Пролозі.
У кожної з мов програмування є своє коло задач, при вирішенні яких він використається з найбільшою ефективністю. Для Прологу це задачі, пов'язані з розробкою систем штучного інтелекту (різні експертні системи, програми- перекладачі, інтелектуальні ігри). Він використається для обробки природної мови й має потужні засоби, що дозволяють витягати інформацію з баз даних, причому методи пошуку, використовувані в ньому, принципово відрізняються від традиційних.
Пролог знайшов застосування й у ряді інших областей, наприклад, при вирішенні задач складання складних розкладів. При цьому він не є універсальною мовою програмування й не призначений, наприклад, для вирішення задач, пов'язаних із графікою або чисельними методами.
Існує велика кількість реалізацій мови Пролог, як комерційних, так і вільно розповсюджуваних. Ми будемо орієнтуватися на SWI-Prolog та GNU- Prolog, розроблений в університеті міста Амстердам. Можливостей даної реалізації цілком достатньо для первісного знайомства з основами логічного програмування.
SWI-Prolog та GNU-Prolog поширюється під ліцензією GPL, що забезпечує можливість його використання без порушень або комерційних інтересів. Ця версія мови Пролог доступний як користувачам ОС Linux, так і користувачам Windows.
1.1. Класична логіка та мова Пролог
Логічні мови, як можна побачити з їхньої назви, для мети передачі змісту програм використають засоби математичної логіки. Сама по собі логіка була винайдена як інструмент людської думки, що дозволяє впорядкувати знання й одержати з них відповідні висновки. Тому ідея використання принципів математичної логіки при складанні комп'ютерних програм здається досить природною.
Раніше ми вже познайомилися із частиною логіки, яка зветься численням висловлювань. Але обрахування висловлювань не дає можливості виразити багато фактів та міркувань, якими користуються в повсякденному житті. Наприклад, розглянемо класичне міркування:
Всі люди смертні (p); Сократ - людина (q); отже, (->)
Сократ смертний (r).
Це міркування вірне, але його неможливо довести в рамках теорії висловлювань. Ми можемо записати формулу (p&&q)->r, але довести її істинність уже не зможемо. Таким чином, логіка висловлень не дозволяє досить точно виразити розглянуте міркування. Це пов'язане з тим, що вона розглядає кожне висловлювання як неподільний об'єкт, у той час як багато висловлень залежать від якихось параметрів.
Вирахування предикатів є узагальненням вирахування висловлень, що дозволяють використати параметри (які також звуться аргументами або змінними) у висловленнях. У термінах теорії предикатів наше міркування можна записати так:
Для всіх x, якщо x є людиною, те x є смертним;
Сократ є людиною; (отже)
Сократ є смертним.
Вивчення вирахування предикатів не є нашою задачею, однак, для того, щоб застосовувати мову логічного програмування, не обов'язково знати логіку предикатів: вона вже вбудована в мову. Досить вивчити саму мову й звикнути до її виразних засобів.
Мова Пролог, найвідоміша із представників сімейства мов логічного програмування, вона зросла з робіт Алана Колмерауэра (A. Colmerauer) по обробці природної мови й незалежних робіт Роберта Ковальского (R. Kowalski) по використанню логіки у програмуванні. Дэвиду Уоррену (D. Warren) і його колегам з Эдинбургского університету вдалося здійснити досить ефективну реалізацію Прологу. Ім'я Уоррена ввійшло в історію логічного програмування. У його честь названа базова техніка реалізації Прологу, що одержала назву абстрактної машини Уоррена.
Програма мовою Пролог являє собою набір фактів й (можливо) правил. Якщо програма містить тільки факти, то її називають базою даних. Якщо вона містить ще й правила, то часто використають термін база знань.
Для запуску Прологу, наберіть у командному рядку pl і натисніть Enter. На екрані з'явиться запрошення для введення запитів:
?-
Запит (питання) вводиться після запрошення й обов'язково закінчується крапкою, наприклад,
?- 5+4<3. No
Пролог аналізує запит і видає відповідь Yes (Так) у випадку істинності твердження й No (Ні) у противному випадку або коли відповідь не може бути знайдена.
Зберігають програми мовою Пролог у текстових файлах, що найчастіше мають розширення .pl, наприклад, example1.pl. Для того щоб Пролог міг оперувати інформацією, що розміщена у файлі, він повинен ознайомиться з його вмістом (проконсультуватися з ним). Це