ив метод автоматичного пошуку доведення теорем в численні предикатів першого порядку, що отримав назву «принцип резолюції».
У 1973 році «група штучного інтелекту» на чолі з Аланом Колмерое створила в Марсельському університеті програму, призначену для доведення теорем. Ця програма використовувалася при побудові систем обробки текстів на природній мові. Програма докази теорем отримала назву PROLOG (від Programmation en Logique). Програма була написана на Фортране і працювала досить повільно.
У 1976 р. Роберт Ковальський разом з його колегою Маартеном ван Емден запропонував два підходи до прочитання текстів логічних програм: процедурний і декларативний.
У 1977 році в Единбурзі Уоррен і Перейра створили дуже ефективний компілятор мови PROLOG для ЕОМ DEC - 10, який послужив прототипом для багатьох наступних реалізацій PROLOG. Що цікаво, компілятор був написаний на самому PROLOG. Ця реалізація PROLOG, відома як «едінбурзька версія», фактично стала першим і єдиним стандартом мови. Алгоритм, використаний при його реалізації, послужив прототипом для багатьох наступних реалізацій мови. Як правило, якщо сучасна PROLOG-система і не підтримує единбурзький PROLOG, то до її складу входить підсистема, яка переводить прологовскую програму в «единбурзький» вид. Мається, звичайно, стандарт ISO / IEC 13211 - 1:1995, але його підтримують далеко не всі PROLOG-системи.
У 1980 році Кларк і Маккейб у Великобританії розробили версію PROLOG для персональних ЕОМ.
У 1981 році стартував вищезгаданий проект Інституту з розробки методів створення комп'ютерів нового покоління.
Традиційно під програмою розуміють послідовність операторів (команд, виконуваних комп'ютером). Цей стиль програмування прийнято називати імперативним. Програмуючи в імперативному стилі, програміст повинен пояснити комп'ютера, як потрібно вирішувати задачу. Протилежний йому стиль програмування - так званий декларативний стиль, в якому програма являє собою сукупність тверджень, що описують фрагмент предметної області або ситуацію, що склалася. Програмуючи в декларативному стилі, програміст повинен описати, що потрібно вирішувати. Відповідно і мови програмування ділять на імперативні і декларативні.
В основі декларативних мов лежить формалізована людська логіка. Людина лише описує решаемую задачу, а пошуком рішення займається імперативна система програмування. У підсумку отримуємо значно більшу швидкість розробки додатків, значно менший розмір вихідного коду, легкість запису знань на декларативних мовах, більш зрозумілі, порівняно з імперативними мовами, програми.
Відома класифікація мов програмування по їх близькості або до машинної мови, або до природного людському мови. Ті, що ближче до комп'ютера, відносять до мов низького рівня, а ті, що ближче до людини, називають мовами високого рівня. У цьому сенсі декларативні мови можна назвати мовами надвисокого або найвищого рівня, оскільки вони дуже близькі до людської мови і людського мислення.
До імперативним мов відносяться такі мови програмування, як Паскаль, Бейсік, Сі і т. д. На відміну від них, PROLOG є декларативною мовою.
При програмуванні на Пролозі зусилля програміста повинні бути спрямовані на опис логічної моделі фрагмента предметної області розв'язуваної задачі в ...