Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРЕДСТАВЛЕНИЕ ЗНАНИЙ И ЛОГИЧЕСКОЕ ПРОГРАММИРОВА...doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
1.08 Mб
Скачать

1.3. Сложные термы, или структуры

Следует отметить, что данный раздел нельзя рассматривать как полный учебник по языку Пролог, а только как краткое введение, служащее для иллюстрации принципов логического программирования, более подробно описанных в [2], [3], [4].

Структура состоит из атома, называемого главным функтором, и последовательности термов, называемых компонентами структуры. Компоненты разделяются запятыми и заключаются в круглые скобки.

Приведем примеры структурированных термов:

собрание (место_проведения),

параметры_собрания (Х,У).

Число компонент в структуре называется арностью структуры. Так, в данном примере структура собрание имеет арность 1 (записывается как объект/1), а структура параметры_собрания - арность 2 (параметры_собрания/2). Заметим, что атом можно рассматривать как структуру арности 0.

Для некоторых типов структур допустимо использование альтернативных форм синтаксиса. Это синтаксис операторов для структур арности 1 и 2, синтаксис списков для структур в форме списков и синтаксис строк для структур, являющихся списками кодов символов.

Структуры арности 1 и 2 могут быть записаны в операторной форме, если атом, используемый как главный функтор в структуре, объявить оператором.

Список есть не что иное, как некоторая структура арности 2. Данная структура становится интересной и чрезвычайно полезной в случае, когда вторая компонента тоже является списком. Вследствие важности таких структур в Прологе имеются специальные средства для записи списков.

1.4. Синтаксис строк

Строка определяется как список кодов символов. Коды символов имеют особое значение в языках программирования. Они выступают как средство связи компьютера с внешним миром. В большинстве реализации Пролога существует специальный синтаксис для записи строк. Он подобен синтаксису атомов. Строкой является любая последовательность символов, которые могут быть напечатаны (кроме двойных кавычек), заключенная в двойные кавычки. Двойные кавычки в пределах строки записываются дважды “”.

В некоторых реализациях Пролога строки рассматриваются как определенный тип объектов подобно атомам или спискам. Для их обработки вводятся специальные встроенные предикаты. В других реализациях строки обрабатываются в точности так же, как списки, при этом используются встроенные предикаты для обработки списков. Поскольку все строки могут быть определены как атомы или как списки целых чисел, и понятие строки является чисто синтаксическим, мы не будем более к нему возвращаться.

1.5. Утверждения

Программа на Прологе представляет собой совокупность утверждений. Утверждения состоят из целей и хранятся в базе данных Пролога. Таким образом, база данных Пролога может рассматриваться как программа на Прологе. В конце утверждения ставится точка “.”. Иногда утверждение называется предложением.

Основная операция Пролога - доказательство целей, входящих в утверждение.

Существуют два типа утверждений:

  • факт: это одиночная цель, которая, безусловно, истинна;

  • правило: состоит из одной головной цели и одной или более хвостовых целей, которые истинны при некоторых условиях.

Правило обычно имеет несколько хвостовых целей в форме конъюнкции целей.

Таким образом, правило согласовано, если согласованы все его хвостовые цели.

Примеры фактов:

собрание(собрание_38).

параметры_собрания (место_проведения, время_проведения).

служащий (Иван).

Примеры правил:

руководитель (X) :- руководство (X,Y), служащий (Y).

человек (Х) :- служащий (Х).

Разница между правилами и фактами чисто семантическая. Хотя для правил мы используем синтаксис операторов (более подробное рассмотрение операторного и процедурного синтаксисов выходит за рамки пособия), нет никакого синтаксического различия между правилом и фактом.