Мова логічного програмування prolog

лабораторні роботи та завдання з програмування та інформатики, еге з інформатики

логічного
prolog

Prolog урок 1. Мова логічного програмування Prolog

Теоретичні відомості про Prolog

Пролог був розроблений у Марсельському університеті у ФранціїАленом Колмерое та іншими членами «групи штучного інтелекту» у 1973 році. Ця команда ентузіастів розробила програму, призначену на підтвердження теорем. Написана вона була на Фортрані, і використовувалася при побудові систем обробки текстів природною мовою. Працювала програма досить повільно і назвалася Prolog (від Programmation en Logique на франц.). Програма стала прообразом Прологу.

Мова логічного програмування prolog -декларативний, що означає, що програма, написана на ньому, виглядає якнабір логічних описів, що визначають мету, заради якої вона і написана.

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

По суті, Prolog є не так мовою для програмування, як засіб для опису даних і логіки їх обробки. Оскільки мова не алгоритмічна, то і програма на Пролозі не містить явних алгоритмічних конструкцій типу умовних або циклічних операторів, тобто. не є програмою у класичному розумінні. Написана на Пролозі, вона є модель фрагмента предметної області на розв'язання проблеми якої і завдання. Саме розв'язання задачі записується не в термінах комп'ютера, як це прийнято в імперативних мовах, а в термінах предметної області розв'язуваної задачі, по суті, в дусіоб'єктно-орієнтованого програмування.

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

Області застосування мови Prolog та декларативних мов загалом

  • Реалізація систем штучного інтелекту.
  • Створення експертних систем та оболонок експертних систем.
  • Розробка систем допомоги ухвалення рішень.
  • Розробка систем обробки природної мови.
  • Побудова планів дій роботів.
  • і т.п.

Особливості мови

  • Опис проблеми та правил її вирішення.
  • Знаходження всіх можливих рішень за допомогою механізму пошуку із поверненням (backtracking).
  • Легкий синтаксис.

Версії та компілятори

На сьогодні існує чимало реалізацій Прологу. Але найперший компілятор мови було створено Уорреном і Перейрою 1977 року у Единбурзі, компілятор призначався для ЕОМ DEC–10. Той самий компілятор, відомий як реалізація під назвою «единбурзька версія», фактично став першим і єдиним стандартом мови та став прототипом для багатьох подальших реалізацій Прологу. Цікавим фактом є те, що компілятор був написаний на Пролозі.

Вивчати Пролог без прив'язки до конкретної версії не зовсім доцільно. Версій Прологу дуже багато, але ми виберемо найвідомішу в Україні та досить ефективну версію Прологу —Турбо Пролог. Починала розробку версії (реалізації) фірма Borland International разом із датською компанією Prolog Development Center (PDC). Перша версія вийшла 1986 року. Остання спільна версія 1988 вийшла під номером 2.0.

програмування

Мал. 1. Сайт центрурозробки Prolog (Prolog Developement Center)

Таким чином, в 1992 вийшла версія PDC Prolog 3.31, а в 1996, за участю групи пітерських програмістів, PDC випустила систему Visual Prolog 4.0, у якої багато переваг, але ми не будемо на них зупинятися.

Для роботи ми виберемо найпростіший компілятор TPtolog (Турбо Пролог).

До переваг Турбо Прологу належить можливість приєднувати до програми цією мовою процедури, написані на Паскалі, Сі, Фортрані або асемблері.

Завантаження Tprolog через Dosbox

Для роботи в Tprolog з 68-бітною системою необхідно використовувати програму для емуляції DOS (наприклад, dosbox).

Алгоритм роботи з програмою наступний:

Робота в Tprolog

Гарячі клавіші та основні команди:

  • F10,Esc — перехід до головного меню.
  • Esc — вихід із поточного пункту / скасування.
  • МенюEdit – перехід до редагування коду.
  • МенюFiles ->New File — створення нового файлу.
  • МенюCompile ->Memory -> МенюRun — компіляція та запуск програми.

Запуск програми здійснюється двома способами:

  1. Через написання розділу GOAL та запуску програми в меню compile та run.
  2. Робота з вікном DIALOG (у такому разі розділ GOAL у програмі не потрібний).