- 149 -
В декларативной модели рассматриваются отношения, определенные в
программе. Для этой модели порядок следования предложений в программе
и условий в правиле не важен.
Процедурная модель рассматривает правила как последовательность
шагов, которые необходимо успешно выполнить для того, чтобы
соблюдалось отношение, приведѐнное в заголовке правила.
Множество предложений, имеющих в заголовке предикат с одним и
тем же именем и одинаковым количеством аргументов, трактуются как
процедура. Для процедурной модели важен порядок, в котором записаны
предложения и условия в предложениях.
Модель в виде абстрактной машины описывает смысл запроса и
множества фраз через действия этой машины.
Декларативная модель
В декларативной семантической модели Пролога специфицируются
истинностные значения конкретных случаев отношений. Здесь употребляется
слово декларативный, потому что во фразах языка Пролог декларируется (т.е.
объявляется), что будут соблюдаться некоторые отношения между
аргументами, если выполнены все условия, входящие в эти фразы.
Пример
Дана фраза: начальник (Фамилия, Оклад) :-служащий (Фамилия,
Оклад), Оклад > 70000.
Еѐ прочтение: некое лицо (Фамилия) является начальником, если он
или она является служащим с окладом, превышающим 70000 долларов.
В соответствии с прочтением для декларативной модели фразы
Пролога являются формулами логики предикатов первого порядка,
записанными в форме фраз Хорна. В качестве логических соединителей
могут выступать только лишь «если», «и» и «или». Порядок следования
условий не имеет значения, так как считается, что все условия должны
соблюдаться одновременно. Множество фраз, составляющих Пролог-
программу, описывает существенные особенности логической структуры
прикладной области.
Процедурная модель
В соответствии с процедурной семантической моделью Пролога
условия, входящие в состав фразы, специфицируют процесс установления
истинностного значения данной фразы. Тем самым условия трактуются как
последовательность шагов, которые необходимо успешно выполнить для
того, чтобы соблюдалось отношение, приведѐнное в конце этой фразы.
Множество фраз с одним и тем же именем предиката и с одинаковым
количеством аргументов трактуется как процедура. Запрос с указанием того
же имени предиката и того же числа аргументов, что и в процедуре,
трактуется как вызов этой процедуры. Для того чтобы запрос оказался