Логическое программирование
[править]
Материал из Википедии — свободной энциклопедии
Парадигмы программирования

Агентно-ориентированная
Компонентно-ориентированная
Конкатенативная
Декларативная (контрастирует с Императивной)
Ограничениями
Функциональная
Потоком данных
Таблично-ориентированная (электронные таблицы)
Реактивная
Логическая
Событийно-ориентированная
Сервис-ориентированная
Комбинаторная
Императивная (контрастирует с Декларативной)
Процедурная
Предметно-ориентированная
Метапрограммирование
Автоматизация процесса программирования
Обобщённое программирование
Рефлексивно-ориентированная
Итерационная
Параллельная
Структурная
Модульная
Рекурсивная
Объектно-ориентированная
Автоматная
Разделение ответственности:
Аспектно-ориентированная
Субъектно-ориентированная
Прототип-ориентированная
||

Шаблон: Просмотр • Обсуждение • Править

Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.

Самым известным языком логического программирования является Prolog.

Первым языком[источник не указан 794 дня] логического программирования был язык Planner, в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы понизить требования к вычислительным ресурсам (с помощью метода backtracking) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан язык Prolog, который не требовал плана перебора вариантов и был, в этом смысле, упрощением языка Planner.

От языка Planner также произошли логические языки программирования QA-4, Popler, Conniver и QLISP. Языки программирования Mercury, Visual Prolog, Oz и Fril произошли уже от языка Prolog. На базе языка Planner было разработано также несколько альтернативных языков логического программирования, не основанных на методе поиска с возвратами (backtracking), например, Ether (см. обзор Шапиро [1989]).
[править] См. также

Искусственный интеллект
Экспертные системы
База знаний
Язык Пролог
Логика в информатике
Функциональное программирование
Структурное программирование
Доказательное программирование
Автоматное программирование
Процедурное программирование
Объектно-ориентированное программирование
Прототипное программирование
Аспектно-ориентированное программирование
Модель акторов

[править] Библиографические ссылки

Иван Братко Алгоритмы искусственного интеллекта на языке PROLOG = Prolog Programming For Artificial Intelligence. — М.: «Вильямс», 2004. — С. 640. — ISBN 0-201-40375-7
Анатолий Адаменко, Андрей Кучуков Логическое программирование и Visual Prolog (с CD).. — СПб.: «БХВ-Петербург», 2003. — С. 990. — ISBN 5-94157-156-9
John McCarthy. Programs with common sense Symposium on Mechanization of Thought Processes. National Physical Laboratory. Teddington, England. 1958.
Fisher Black. A deductive question answering system Harvard University. Thesis. 1964.
James Slagle. Experiments with a Deductive Question-Answering Program CACM. December, 1965.
Cordell Green. Application of Theorem Proving to Problem Solving IJCAI 1969.
Carl Hewitt. Planner: A Language for Proving Theorems in Robots IJCAI 1969.
Gerry Sussman and Terry Winograd. Micro-planner Reference Manual AI Memo No, 203, MIT Project MAC, July 1970.
Carl Hewitt. Procedural Embedding of Knowledge In Planner IJCAI 1971.
Terry Winograd. Procedures as a Representation for Data in a Computer Program for Understanding Natural Language MIT AI TR-235. January 1971.
Bruce Anderson. Documentation for LIB PICO-PLANNER School of Artificial Intelligence, Edinburgh University. 1972
Bruce Baumgart. Micro-Planner Alternate Reference Manual Stanford AI Lab Operating Note No. 67, April 1972.
Julian Davies. Popler 1.6 Reference Manual University of Edinburgh, TPU Report No. 1, May 1973.
Jeff Rulifson, Jan Derksen, and Richard Waldinger. QA4, A Procedural Calculus for Intuitive Reasoning SRI AI Center Technical Note 73, November 1973.
Robert Kowalski Predicate Logic as Programming Language Memo 70, Department of Artificial Intelligence, Edinburgh University. 1973.
Drew McDermott and Gerry Sussman. The Conniver Reference Manual MIT AI Memo 259A. January 1974.
Earl Sacerdoti, et al. QLISP: A Language for the Interactive Development of Complex Systems AFIPS National Computer Conference. 1976.
Bill Kornfeld and Carl Hewitt. The Scientific Community Metaphor IEEE Transactions on Systems, Man, and Cybernetics. January 1981.
Bill Kornfeld. The Use of Parallelism to Implement a Heuristic Search IJCAI 1981.
Bill Kornfeld. Parallelism in Problem Solving MIT EECS Doctoral Dissertation. August 1981.
Bill Kornfeld. Combinatorially Implosive Algorithms CACM. 1982
Carl Hewitt. The Challenge of Open Systems Byte Magazine. April 1985.
Robert Kowalski. The limitation of logic Proceedings of the 1986 ACM fourteenth annual conference on Computer science.
Ehud Shapiro (Editor). Concurrent Prolog MIT Press. 1987.
Robert Kowalski. The Early Years of Logic Programming CACM. January 1988.
Ehud Shapiro. The family of concurrent logic programming languages ACM Computing Surveys. September 1989.
Carl Hewitt and Gul Agha. Guarded Horn clause languages: are they deductive and Logical? International Conference on Fifth Generation Computer Systems, Ohmsha 1988. Tokyo. Also in Artificial Intelligence at MIT, Vol. 2. MIT Press 1991.
Shunichi Uchida and Kazuhiro Fuchi Proceedings of the FGCS Project Evaluation Workshop Institute for New Generation Computer Technology (ICOT). 1992.