Научившись обращаться с простыми объектами Турбо-Пролога, вы в дальнейшем сможете использовать и составные. В этой главе вы познакомитесь с двумя полезными при разработке программ вещами: доменной структурной диаграммой (ДСД) и предикатной структурной диаграммой (ПСД), каждая из которых помогает писать более логичные и эффективные программы.
В целях упрощения организации фактов и правил Турбо-Пролог поддерживает составные доменные структуры; кирпичиками для их создания служат базисные типы доменов Турбо-Пролога. В настоящей главе рассматривается вопрос создания составных объектов и доменных структур на основе этих базисных типов.
Примеры программ ставят целью продемонстрировать концепции и методы программирования. Прочитав главу, вы уже будете иметь достаточно знаний об использовании некоторых полезных приемов программирования на Турбо-Прологе.
Любая программа, написанная на Турбо-Прологе, состоит из пяти разделов.
Таковыми являются раздел описания доменов, раздел базы данных, раздел описания предикатов, раздел описания цели и раздел описания утверждений. Ключевые слова domains, database, predicates, goal и clauses отмечают начала соответствующих разделов.
|
|
Назначение этих разделов таково:
· раздел domains содержит определения доменов, которые описывают различные классы объектов, используемых в программе;
· раздел database содержит утверждения базы данных, которые являются предикатами динамической базы данных. Если программа такой базы данных не требует, то этот раздел может быть опущен;
· раздел predicates служит для описания используемых программой предикатов;
· в разделе goal на языке Турбо-Пролога формулируется назначение создаваемой программы. Составными частями при этом могут являться подцели, из которых формируется единая цель программы;
· в раздел clauses заносятся факты и правила, известные априорно. О содержимом этого раздела можно говорить как о данных, необходимых для работы программы.
Большинство программ, однако, не содержит всех пяти названных разделов в силу причин, о которых будет сказано несколько позднее.
Турбо-Пролог обеспечивает возможность включения в программу комментариев, которые обрамляются символами /* и */ (рис. 1). Комментарии можно помещать в любом месте программы, причем на их длину нет практически никаких ограничений. Для того чтобы служить своему назначению, комментарии должны содержать информацию о самой программе, имени программного файла, компиляторе, базе данных, а также о назначении каждого из предикатов и правил, которые не являются в достаточной степени очевидными.
|
|
/*-------------------------------------------*/
|
/*----------------------*/
domains
<описания доменов>
database
<описания предикатов
динамической базы данных>
predicates
<описания предикатов>
goal
<целевое утверждение>
clauses
<утверждения>
|
/* */
/* */
Рис. 1. Структура программы Турбо-Пролога