Читайте также: |
|
articles=book(title,author);
horse(name) % Articles - это books или horses
title,author,name=symbol
Точка с запятой читается как "или". В этом случае возможны два варианта: книга будет определяться своим заглавием и автором, а лошадь будет распознаваться своим именем. Домены title, author и name имеют стандартный тип symbol.
65. Декларативная семантика программ.
Декларативная семантика определяет, что должно быть результатом работы про- граммы, не вдаваясь в подробности, как это достигается.
Пусть задано P:-Q, R.
где P, Q, R -термы.
Тогда с точки зрения декларативного смысла это предложение читается: " P-истиино, если Q R истинны." Или " Из Q и R cледует Р." Т.е. определяются логические связи между головой предложения и целями в его теле.
Таким образом, декларативный смысл программы определяет, является ли данная цель истинной (достижимой), и если - да, то при каких значениях переменных она достигается.
Конкретизацией I предложения С называется результат подстановки в него на место каждой переменной некоторого терма.
Заметим, что это отличается от конкретизации переменной.
Пример:
haschild(X):-parent(X,Y).
66. Процедурный смысл программ.
Процедурная семантика (процедурный смысл) пролог-программы определяет, как пролог-программа отвечает на вопросы.
Ответить на вопрос - это значит удовлетворить цели.
Поэтому процедурная семантика пролога -это процедура вычисления списка целей с учетом программы.
67. Взаимосвязь между декларативным и процедурным смыслами программ.
Создавая пролог программы всегда надо помнить о процедурном и декларативном смысле.
Декларативный смысл касается отношений, определенных в программе. Т.е. декларативный смысл определяет, что должно быть результатом программы.
С другой стороны, процедурный смысл определяет, как этот результат может быть достигнут, т.е., как реально отношения обрабатываются прологом.
68. Изменение процедурного смысла путем изменения порядка следования предложений и целей.
69. Внутренняя база фактов.
Внутренняя база фактов состоит из фактов, которые вы можете непосредственно добавлять и удалять из вашей программы на Прологе во время ее исполнения. Вы можете объявлять предикаты, описывающие внутреннюю базу данных в разделе database программы и применять эти предикаты таким же образом, как используются предикаты, описанные в разделе predicates.
Пролог интерпретирует факты, принадлежащие к базе данных, таким же образом, как обычные предикаты. Факты предикатов внутренней базы фактов хранятся в таблице, которую можно легко изменять, тогда как обычные предикаты для достижения максимальной скорости компилируются в двоичный код.
Дата добавления: 2015-07-20; просмотров: 106 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Domains | | | Доступ к внутренней базе фактов |