Введение в логическое программирование - Хоггер К.

Название:
Введение в логическое программирование
Автор:
Форматы:
PDF
FB2
DJVU
Размер:
3.4 КБ
20
Скачать
Основна складність програмування завдань для ЕОМ пов'язана не стільки з різницею мов людини і машини, скільки з різницею їх «мислення». Довгий час вважалося, що машина здатна правильно сприймати і виконувати тільки алгоритми, т. е. детерміновані формальні обчислення директивного типу. В той же час первісна формулювання задачі має, як правило, описовий характер. Неформальний етап побудови відповідного алгоритму і запис його на певному формальному мовою вимагає від програміста не тільки значних витрат часу, але і достатньо високої кваліфікації. Це і деякі інші недоліки алгоритмічного підходу стимулювали пошук інших можливостей. Усвідомлення того, що обчислення є окремий випадок логічного виводу, а алгоритм - це аксіоматичне завдання функції, призвело до ідеї так званого логічного програмування, перша реалізація якої була здійснена на початку 70-х років у вигляді системи Пролог. Суть цієї ідеї полягає в тому, що машині в якості програми можна надати не алгоритм, а формальний опис предметної області та завдання (функції) у вигляді аксіоматичної системи, і тоді побудова рішення завдання у вигляді висновку в цій системі можна доручити самої машині. Таким чином, від програміста вже не потрібно побудови алгоритму, що вирішує завдання, оскільки потрібний алгоритм породжується інтерпретатором, що будують висновок за певної стратегії. Тепер основне завдання програміста - вдало аксиоматизировать, т. е. описати у вигляді системи логічних формул предметну область і таке безліч відносин на ній, які з достатнім ступенем повноти описують завдання. Слід одразу зазначити, що цей підхід був би неможливий, якби не існувало методів автоматичного пошуку доказів. Практична ефективність логічного програмування залежить не тільки від вдалої аксиоматизации завдання, але ще більшою мірою від якості інтерпретатора, що реалізує пошук Докази. Тому крім техніки програмування дуже важливо вдосконалювати методи автоматичного доказів-.