Пролог (язык программирования): различия между версиями

Перейти к навигации Перейти к поиску
м
нет описания правки
м (→‎Старший: оформление)
мНет описания правки
}}
 
'''Пролог''' (''англ.'' '''{{lang-en|Prolog'''}}) — язык и система [[логическое программирование|логического программирования]], основанные на языке [[предикат]]ов [[математическая логика|математической логики]] [[дизъюнкт Хорна|дизъюнктов Хорна]], представляющей собой подмножество [[логика первого порядка|логики предикатов первого порядка]].
 
Язык сосредоточен вокруг небольшого набора основных механизмов, включая [[сопоставление с образцом]], древовидного представления структур данных и автоматического перебора с возвратами. Хорошо подходит для решения задач, где рассматриваются объекты (в частности структурированные объекты) и отношения между ними. Пролог, благодаря своим особенностям, используется в области искусственного интеллекта, компьютерной лингвистики и нечислового программирования в целом. В некоторых случаях реализация символьных вычислений на других стандартных языках вызывает необходимость создавать большое количество кода, сложного в понимании, в то время как реализация тех же алгоритмов на языке Пролог даёт простую программу, легко помещающуюся на одной странице.
Prolog является [[Декларативный язык программирования|декларативным языком программирования]]: логика программы выражается в терминах отношений, представленных в виде фактов и правил. Для того чтобы инициировать вычисления, выполняется специальный ''запрос'' к [[База знаний|базе знаний]], на которые система логического программирования генерирует ответы «истина» и «ложь». Для обобщённых запросов с переменными в качестве аргументов созданная система Пролог выводит конкретные данные в подтверждение истинности обобщённых сведений и правил вывода.
 
Иначе говоря, [[предикат]] можно определить как [[Функция (математика)|функцию]], отображающую [[множество]] произвольной природы в множество [[Булева алгебра|булевых значений]] <code>{ложно, истинно}</code>. Задача пролог–программыпролог-программы заключается в том, чтобы доказать, является ли заданное целевое утверждение следствием из имеющихся фактов и правил.
 
== Развитие ==
 
== Синтаксис ==
Основными понятиями в языке Пролог являются факты, правила логического вывода и запросы, позволяющие описывать [[база знаний|базы знаний]], процедуры [[Логический вывод|логического вывода]] и принятия решений. В логическом программировании, как оно реализовано в прологе, используется только одно правило вывода  — [[Правило резолюций|резолюция]].
 
В языке пролог исходное множество формул , для которого ищется пустая резольвента, представляется в виде так называемых «[[Хорновский дизъюнкт|дизъюнктов Хорна]]»:
 
=== Термы ===
}}</ref>
 
Другим часто подвергаемым критике свойством языка является отсутствие типизации (при этом в [[Visual Prolog]]<ref>А также его прямом предшественнике [[Turbo Prolog]]</ref>  — одном из объектно-ориентированных расширений языка — реализована строгая типизация, что, однако, снижает гибкость пролога).
 
В языке предопределён порядок обхода дерева решений «в глубину» и стандартизированы операторы, позволяющие вмешиваться в этот процесс (такие как оператор отсечения <code>!</code> или ветвления <code>-&gt;</code>). Такая архитектура затрудняет автоматическое распараллеливание программ, которое позволило бы задействовать в поиске решения несколько процессоров или узлов сети.
</source>
 
Вывод: (Jake, Tim)
(Tim, Jake)
 
=== Старший ===
<source lang="prolog">
старше("Петр", "Иван").
? старше(U, V).
</source>
Выводы:
1. Тимофей старше Ивана
2. Василий старше Петра
3. Иван-самый младший; Василий — самый старший; Тимофей старше Петра.
 
== См. также ==
|isbn = 5-318-00537-3
}}
* ''Марков В. Н.'' Современное логическое программирование на языке Visual Prolog 7.5: учебник.  — СПб.: БХВ-Петербург, 2016.  — 544 с.  — ISBN 978-5-9775-3487-1
* {{книга|автор = Маллас Дж.|заглавие = Реляционный язык Пролог и его применение|место = М.|издательство = Наука|год = 1990
|страниц = 464|isbn = 5-02-014509-2}}
9558

правок

Навигация