Логическое программирование
Логи́ческое программи́рование — парадигма программирования, основанная на математической логике — программы в ней задаются в форме логических утверждений и правил вывода. Наиболее известный язык логического программирования — Пролог.
История
[править | править код]Первым языком логического программирования был язык Плэнер[1], в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Плэнер использовался для того, чтобы понизить требования к вычислительным ресурсам (с использованием техники поиска с возвратом) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан Пролог, который не требовал плана перебора вариантов и был, в этом смысле, упрощением Плэнера.
От Плэнера также произошли логические языки программирования QA-4, Popler, Conniver и QLISP, а также язык Ether, не использующих метод поиска с возвратами[1]. Языки Mercury, Visual Prolog, Oz, Fril, Datalog основаны на Прологе.
Использование математической логики для представления и выполнения компьютерных программ также является особенностью лямбда-исчисления, разработанного Алонзо Чёрчем в 1930-х. Однако первое предложение использовать клаузальную форму логики для представления компьютерных программ было сделано Корделлом Грином[англ.].[2] При этом использовалась аксиоматизация подмножества LISP вместе с представлением отношения ввода-вывода для вычисления отношения путём моделирования выполнения программы в LISP. С другой стороны, язык программирования Absys использовал комбинацию уравнений и лямбда-исчисления в языке ассертивного программирования, который не накладывает никаких ограничений на порядок выполнения операций.[3]
Примечания
[править | править код]- ↑ 1 2 Ehud Shapiro. The family of concurrent logic programming languages (англ.) // ACM Computing Surveys[англ.]. — 1989. — Vol. 21, iss. 3. — P. 413–510. — doi:10.1145/72551.72555.
- ↑ Green, Cordell. Application of Theorem Proving to Problem Solving (PDF). IJCAI 1969. Архивировано (PDF) 10 февраля 2023. Дата обращения: 26 ноября 2023.
- ↑ Foster, J.M.; Elcock, E.W. (1969). ABSYS 1: An Incremental Compiler for Assertions: an Introduction. Fourth Annual Machine Intelligence Workshop. Machine Intelligence. Vol. 4. Edinburgh, UK: Edinburgh University Press. pp. 423—429.
Литература
[править | править код]- Иван Братко. Алгоритмы искусственного интеллекта на языке PROLOG = Prolog Programming For Artificial Intelligence. — М.: «Вильямс», 2004. — С. 640. — ISBN 0-201-40375-7.
- Анатолий Адаменко, Андрей Кучуков. Логическое программирование и Visual Prolog (с CD). — СПб.: «БХВ-Петербург», 2003. — С. 990. — ISBN 5-94157-156-9.
- ред. В. Н. Агафонов. Логическое программирование. Сборник статей. — М.: Мир, 1988. — С. 368. — 15 000 экз. — ISBN 5-03-000972-8.
- Д. А. Поспелов. Моделирование рассуждений. — М.: Радио и связь, 1989. — С. 184. — 20 000 экз. — ISBN 5-256-00183-3.
Ссылки
[править | править код]- Logic Programming Virtual Library entry (англ.)
- Bibliographies on Logic Programming (англ.)
- Association for Logic Programming (ALP) (англ.)
- Theory and Practice of Logic Programming journal (англ.)
В другом языковом разделе есть более полная статья Logic programming (англ.). |
Для улучшения этой статьи по информационным технологиям желательно:
|