Этапы программирования
Этапы программирвоания на ТП
1. Описание
типов данных (domains).
Для стандартных типов описание необязательно.
2. Описанеи
предикатов (predicates)
3. Объявление
некоторых фактов об объектах и отношениях между ними (clauses).
4. Объявление
некоторых првид об объектах и отношениях между ними (clauses).
5. Формулировка
вопросов об объектах и отношениях между ними (goal или окно диалога).
Декларативный и процедурный смысл программы
Различают два уровня смысла.
Декларативный (описательный) касается только отношений,
определяемых программой. Декларативный смысл определяет, что должно быть
результатом работы программы. Процедурный смысл определяет как результат
получается.
Р:-А, В
Декларативный смысл этого предположения: Р истина, если
А и В истинны. Процедурный смысл: чтобы
решить Р, сначала надо решить А , а потом В. Способность Пролог-системы
прорабатывать многте процедурные детали самостоятельно считается одним из
специфических преимуществ Пролога. Этот факт имеет практическое значение , так
как декларативные аспектыпрограммы обычно являются более легкими для понимания
чем процедурные детали.
Сопоставление
Наиболее важной операцией над термами являетяс
соспоставление. Два терма сопоставимы если:
-
они идентичны;
-
переменные в обоих термах можно переписать в
качестве значений объекта (то есть конкретизируют их).
Таким образом, чтобы после подстановки этих объектов в терм
вместо переменных 2 терма стали идентичны. Например термы дата (Д, М, 1999) и
дата (Д1, май, Х) сопоставимы. С другой стороны дата (Д, М, 1999) и дата (Д1,
М1, 1945) не сопоставимы.
Общие правила сопоставимости двух термов таковы:
1. Если
С и Т константы, то С и Т сопоставимы только если они являются одними и теми же
объектами.
2. Есил
С – переменная, Т – произволный объект, то они сопоставимы и С приписывается
значение Т.
3. Если
С и Т структуры, то они сопоставимы, если: С и Т имеют одинаковый главный
функтор; все их составляющие компоненты сопоставимы.
Схема согласования целевых утверждений
Для ответа на вопрос, поступивший от пользователя
ТП начинает решение задачи. Вопрос содержит 1 или несколько целевых утверждений
(подцелей), которые необходимо попытаться доказать с помощью известных
утверждений (фактов и правил). Факт может привести к немедленному согласованию
целевого утверждения, когда ЦУ и факт сопоставимы. Правило может свести данную
цель к одному или нескольким предикатам-подцелям, составляющим првую част
правил. Есил Цу ен доказано, возбуждаетяс процесс возврата и делаетс япопытка
передоказать ЦУ путем поиска альтернативных путей доказательства. При возврате
конкретизированны переменные становятся свободными, а при новом доказательстве
получают другие конкретизации. Процесс возврата повторяется до тех пор, пока не
будут использованы все новые пути доказательства.
|