На этом шаге мы рассмотрим введение в логическое программирование.
В Прологе вы получаете решение задачи логическим выводом из ранее известных положении. Обычно программа на Прологе не является последовательностью действий, - она представляет собой набор фактов с правилами, обеспечивающими получение заключений на основе этих фактов. Поэтому Пролог известен как декларативный язык.
Пролог использует упрощенную версию синтаксиса логики предикатов, он прост для понимания и очень близок к естественному языку.
Пролог включает механизм вывода, который основан на сопоставлении образцов. С помощью подбора ответов на запросы он извлекает хранящуюся (известную) информацию. Пролог пытается проверить истинность гипотезы (другими словами - ответить на вопрос), запрашивая для этого информацию, о которой уже известно,что она истинна. Прологовское знание о мире - это ограниченный набор фактов (и правил), заданных в программе.
Одной из важнейших особенностей Пролога является то, что, в дополнение к логическому поиску ответов на поставленные вами вопросы, он может иметь дело с альтернативами и находить все возможные решения. Вместо обычной работы от начала программы до ее конца, Пролог может возвращаться назад и просматривать более одного "пути" при решении всех составляющих задачу частей.
Логика предикатов была разработана дли наиболее простого преобразования принципов логического мышления в записываемую форму. использует преимущества синтаксиса логики для разработки программного языка. В логике предикатов вы, прежде всего, исключаете из своих предложений все несущественные слова. Затем вы преобразуете эти предложения, ставя в них на первое место отношение, а после него - сгруппированные объекты. В дальнейшем объекты становятся аргументами, между которыми устанавливается это отношение. В качестве примера в таблице 1 представлены предложения, преобразованные в соответствии с синтаксисом логики предикатов.
Предложения на естественном языке | Синтаксис логики предикатов |
---|---|
Машина красивая | fun (car) |
Роза красная | red (rose) |
Билл любит машину, если машина красивая | likes(bill, car) if fun(car) |
На следующем шаге мы рассмотрим факты и правила.