Программу можно рассматривать с деклоративн. и процедурной точки зрения.
P:-Q,R. В декларат. интерпретации: P истинно, если Q и R истинны.
В процедурн. интерпрет: чтобы решить P решаем последов-но Q и R.
Различие в интерпретациях состоит в том, что для в процедурном прог-ии зада-
ется ещё и порядок выполнения программы, кроме логич. связей м/у P и Q,R.
Конкретизация предложения C – результат подстановки в него на место каждой
переменной некоторого терма. Унификатор – подстановка, позволяющая сделать
2 терма равными.
Процед-я семантика определяет как Пролог-система отвечает на запросы:
G1,G2,..Gm – список целей. Если список целей пуст, то работа процедуры завер-
шается успехом, выводятся значения подстановок для переменных, содер в
в исходном запросе. Если список не пуст, то просматриваются предлож-ения прог. с верху-вниз, и обнаруживается предложение С, у которого
голова сопоставима с целью G1(иначе завершается неудачей). Если С
имеет вид H:- B1,…,Bn, то выполняется переименовывание переменных в С т.о., что не было одинаковых переменных в списке целей. После этого выполняется сопоставление цели G1 и головы H. Подстановка, унифицир. эти термы, исп. для замены перем-х в теле правила B1,B2,..Bn и в G2,..Gm. Новый список целей – список B1,..Bn,G’2…G’m.
Для вычисления его истинности вызывается рекурсивно та же самая процедура. Вычисляем истинность списка целей G1,G2,..Gm. Если выпол-нение завершается неудачей, то происходит возврат к старому списку
целей G1,..Gm и продолжаем просмотр программы начиная с предл-я следующего за C, в поисках истинности.