Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекція_3_2_2_парадигми_пр.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Програма на Прологу складається з предикатів. Програма на Прологу і база знань – синоніми. Мета формулюється також у вигляді предикатів. Виконання програми на Прологу – це резолюція мети.

Під інтерпретатором Прологу будемо розуміти механізм рішення задачі за допомогою мови Пролог. Інакше кажучи, інтерпретатор мови Пролог - це виконавець Пролог-програм, тобто та "активна сила", яка виконує програми, написані на Прологу.

У кожної з мов програмування є своє коло задач, при розв'язку яких вони використовуються з найбільшою ефективністю.

Для Прологу це задачі, пов'язані з розробкою систем штучного інтелекту (різні експертні системи, програми-перекладачі, інтелектуальні ігри). Використовується для обробки природної мови й має потужні принципово відмінні від традиційних засоби для вилучення інформації з баз даних. Пролог знайшов застосування й у ряді інших областей, наприклад, при рішенні задач складання розкладів. При цьому він не є універсальною мовою програмування й не призначений, зокрема, для розв'язку задач, пов'язаних із графікою або чисельними методами.

Логічне програмування - це концепція, що дозволяє описувати предметну область проблеми без складання алгоритму пошуку розв'язку. Складність програмування нікуди не зникає, вона просто "перетікає" з області побудови алгоритму машинною мовою в область формулювання задачі для її розв'язку машиною.

Пролог є не стільки мовою для програмування, скільки мовою для опису даних і логіки їхньої обробки. І рішення задачі записується не в термінах комп'ютера, а в термінах предметної області задачі, у дусі модного зараз об’єктно-орієнтованого програмування.

Пролог дуже добре підходить для опису відношень між об'єктами. Тому Пролог називають реляційною мовою. Причому "реляційність" Прологу значно могутніша й розвинена, чим "реляційність" мов для обробки баз даних. Часто Пролог використається для створення систем керування базами даних, де є дуже складні запити, які досить легко записати на Прологу.

У Прологу дуже компактно, порівняно з імперативними мовами, описуються багато алгоритмів. По статистиці, рядок тексту програми мовою Пролог відповідає чотирнадцяти рядкам тексту програми тої ж задачі імперативною мовою. Пролог-програму, як правило, дуже легко писати, розуміти й налагоджувати. Це приводить до того, що час розробки додатка мовою Пролог у багатьох випадках на порядок швидший, ніж на імперативних мовах. У Прологу легко описувати й обробляти складні структури даних.

Прологу властивий ряд механізмів, відсутніх у традиційних мовах програмування: зіставлення зі зразком, вивід з пошуком і вертанням. Ще одна істотна відмінність полягає в тім, що для зберігання даних у Прологу використаються списки, а не масиви. У мові відсутні оператори присвоювання й безумовного переходу, покажчики. Природним і найчастіше єдиним методом програмування є рекурсія.

Пролог вимагає відмови від стереотипів, стилю мислення імперативного програмування.

Основні області застосування Прологу:

  • швидка розробка прототипів прикладних програм;

  • автоматичний переклад з однієї мови на іншу;

  • створення природно-мовних інтерфейсів для існуючих систем;

  • символьні обчислення для рішення рівнянь, диференціювання й інтегрування;

  • проектування динамічних реляційних баз даних;

  • експертні системи й оболонки експертних систем;

  • автоматизоване керування виробничими процесами;

  • автоматичний доказ теорем;

  • напівавтоматичне складання розкладів;

  • системи автоматизованого проектування;

  • базоване на знаннях програмне забезпечення;

  • організація сервера даних або, точніше, сервера знань, до якого може звертатись клієнтський додаток, написаний на якій-небудь мові програмування.

Області, для яких Пролог не призначений: великий обсяг арифметичних обчислень (обробка аудио, відео й т.д.); написання драйверів.