Логічне програмування

Різник О. Я.
Код: 978-966-553-736-6
Навчальний посібник. Львів: Видавництво Львівської політехніки, 2008. 332 с. Формат 170 х 240 мм. М'яка обкладинка.
Ціна:303,00грн.
Weight: 0 г

Вступ (фраґменти)

Логіка тісно пов’язана з дослідженням наукового мислення людини. За допомогою логіки, знаючи про істинність або помилковість деяких тверджень, можна зробити висновок про істинність або помилковість інших тверджень.
Комп’ютери, як і логіка, є об’єктом наукового дослідження і допомагають розв’язувати найрізноманітніші задачі у різних галузях людської діяльності. Проте якщо розвиток логіки визначався силою людського розуму, розвиток комп’ютерів з самого початку був обмежений деякими технічними і технологічними вимогами.
Майже всі сучасні комп’ютери засновані на ідеях фон Неймана та його колег, розроблених на початку 40-х років ХХ ст. Машина фон Неймана містить пам’ять, процесор, регістри. Процесор завантажує дані з пам’яті в регістри, виконує арифметичні і логічні операції над вмістом регістрів і скеровує значення з регістрів до пам’яті. Програма машини фон Неймана є набором команд виконання цих операцій, а також команд управління, що впливають на вибір чергової команди.
Проте написати таку програму складно, і людині оперувати термінами операцій машини фон Неймана вкрай непросто, іноді такі дії вимагають граничних розумових зусиль.
Це ініціювало пошук мов програмування, придатних для людини. Було розроблено мови високого рівня – Фортран, Паскаль, Сі – з вищим ступенем абстракції, проте всі вони основані на машині фон Неймана.
Ці особливості програмування приводять до розподілу праці: є фахівці, які розробляють методи розв’язання конкретної задачі, і є “кодувальники”, які пишуть тексти програм. Сьогодні програмування можна вважати рутинним і виснажливим процесом перетворення інструкцій розробників на команди, що сприймаються комп’ютером.
Логічне програмування – використання логіки як мови програмування – ґрунтується на ідеї, що не людину треба навчати комп’ютерного мисленн, а комп’ютер повинен виконувати інструкції, які дає людина.
У логічному програмуванні програма є не набором команд і інструкцій для комп’ютера, а описом абстрактної моделі розв’язуваної задачі у вигляді логічних аксіом (тверджень).
За допомогою побудови логічних моделей задачі можна краще зрозуміти задачу. Крім того, логічні програми більш читабельні, і на їх опис і відлагодження затрачається значно менше часу, ніж на реалізацію схожих проектів традиційними мовами.
Пролог – мова п’ятого покоління, що відкриває нове вимірювання для програмування. Мовою Пролог можна писати програми для розв’язання реальних завдань.
Програміст задає необхідні правила і факти, а Пролог використовує дедуктивний висновок для розв’язання завдання. У мовах Бейсік, Паскаль та ін. основним методом програмування є розбиття завдання на дискретні кроки та їхнє послідовне виконання.
Послідовність кроків перетворюється на машинні команди, що виконуються комп’ютером. Відмінити раніше виконані команди неможливо, оскільки постійно оновлюється вміст пам’яті. Мови такого вигляду називаються алгоритмічними. Пролог належить до мов логічного програмування та використовується для створення експертних систем.
У галузі експертних систем Пролог застосовується для моделювання експертизи у таких сферах, як медицина, законодавство та автоматизація виробництва. Свою назву Пролог одержав від скорочення слів «Програмування мовою Логіки». Пролог використано як базову мову в японській програмі створення ЕОМ п’ятого покоління, орієнтовано на дослідження методів логічного програмування і штучного інтелекту, а також на розроблення нового покоління комп’ютерів, спеціально призначених для реалізації цих методів. Мовою Пролог зручно описувати такі структури даних, як списки і дерева.
Пролог не є мовою програмування у звичному значенні цього слова. Його можна вважати і оболонкою експертної системи, і реалізацією інтелектуальної бази даних.
Пролог є не процедурною, а декларативною мовою. Типовими даними мови Пролог є елементарні одиниці даних, так звані атоми-рядки символів і чисел. З атомів складаються списки і бінарні дерева. Сама «програма» будується за послідовністю фактів і правил, а потім формулюється твердження, яке Пролог намагатиметься довести за допомогою введених правил. Так можна описувати дуже складні проблеми, які розв’язуватимуться за допомогою мови Пролог автоматично (людина лише описує структуру завдання, а внутрішній «мотор» сам шукає розв’язання.) Це відбувається за допомогою методу зіставлення і рекурсивного пошуку.