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