→ Пошук по сайту       Увійти / Зареєструватися
Знання Пролог

Семантика

Различают 2 семантики:
1.Декларативная. Описывает отношения между объектами, не вдаваясь в подробности, как эти отношения будут реализованы.
Дана некоторая программа и цель G, тогда в смысле декларативной семантики можно утверждать, что цель G достижима (истина) тогда и только тогда, когда в программе существует предложение С такое что, существует такая его конкретизация I, что:
Голова конкретизации I совпадает с G
Все цели в I - истины
Список целей называется достижимым (истинным), если все цели в этом списке достижимы при одинаковой конкретизации переменных.
2.Процедурная. Определяет, каким образом программа на прологе отвечает на вопрос.
Формальное описание процедуры вычисления цели: Пусть имеется несколько целей К1, К2,...,Кm
если список целей пуст, то вычисление дает успех, если список целей не пуст, то выполняется следующий пункт.
Берется первая цель из списка К1. Пролог, просматривая сверху вниз данные, выбирает первое встретившееся предложение, где голова F сопоставима с К1. если такого предложения нет, то поиск терпит неудачу, если есть, то переменные конкретизируются. Цель К1 заменяется на список целей Н1, Н2, ..., Нn (тело предложения F).
Рассматривается рекурсивно через пункт 2 новый список целей H1,H2,...,Hn, K2,K3,...,Km. Если оказалось, что С - это факт, то новый список становится короче на одну цель. Если вычисление нового списка оканчивается успешно, то и исходный список целей выполняется успешно, если нет, то новый список целей отбрасывается, снимается конкретизация переменных. Происходит возврат к просмотру программы, но начиная с предложения С + 1.
Процесс возврата называется бек-треккингом.

загрузка...
Сторінки, близькі за змістом