СУЭБ ИВТ СО РАН |
А.М.Федотов |
Логическое программирование — парадигма программирования, а также раздел дискретной математики изучающий методы и возможности этой парадигмы, основанная на выводе новых фактов из данных фактов согласно заданным логическим правилам.
Логическое программирование возникло как упрощение функционального программирования для математиков и лингвистов, решающих задачи символьной обработки. Вместо описания алгоритма решения задачи описывается мир задачи, какие имеются объекты, их свойства и отношения между ними. За основу описания берутся отношения между объектами. Логическая программа представляет собой набор отношений, которые называются фактами, и правил, на основании которых могут быть получены новые отношения. Она не задает никакого процесса вычислений. Это своего рода база данных (БД) о предметной области задачи. Ее применение инициализируется запросом. Поиск ответа на запрос заключается в попытке логического вывода запроса на основании фактов и правил, имеющихся в БД. Поиск решения выполняется специальной программой - интерпретатором.
Первым языком логического программирования был язык Planner , в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы понизить требования к вычислительным ресурсам (с помощью метода backtracking) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан язык Prolog, который не требовал плана перебора вариантов и был, в этом смысле, упрощением языка Planner.
В настоящее время самый популярный язык логического программирования – Prolog , с множеством диалектов, являющийся по своей сути универсальной машиной вывода, работающей в предположении замкнутости мира фактов. Другие менее популярные языки: Datalog , Mercury , Oz .
парадигмы программирования; функциональное программирование; Декларативное программирование; САПР; Data-minig; автоматическое управление; СУБД; символьные вычисления; искусственный интеллект;
© 2013-2025, Евразийский национальный университет им. Л.Н.Гумилева, Астана © 2007-2025, Новосибирский государственный университет, Новосибирск © 1998-2025, Институт вычислительных технологий СО РАН, Новосибирск © 1998-2025, Федотов А.М. |
ФИТ НГУ НГУ ЕНУ им.Гумилева ИВТ СО РАН |