Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция1.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
135 Кб
Скачать
☆

4. Комментарии (слайд 7)

Многострочные комментарии должны начинаться с символов «/*» и заканчиваться символами «*/». Однострочные комментарии можно начинать с символа «%».

5. Основные разделы программ (слайд 8)

  • раздел DOMAINS (доменов);

  • раздел PREDICATES (предикатов);

  • раздел CLAUSES (предложений);

  • раздел GOAL (целей).

Раздел целей аналогичен телу правила и представляет собой список подцелей, представленных в виде запроса. Цель отличается от правила тем, что за ключевым словом GOAL не следует знак «:-» и при запуске программы Visual Prolog автоматически выполняет цель.

Раздел предложений. Все предложения (и факты, и правила) для каждого предиката в данном разделе должны располагаться вместе. Последовательность предложений, описывающих один предикат, называется процедурой.

Раздел предикатов. Здесь перечисляются все предикаты, отличные от стандартных (встроенных в Visual Prolog) и используемые в программе. Предикаты должны быть перечислены с указанием типов (доменов) их аргументов.

Объявление предиката содержит:

1) имя предиката – последовательность латинских букв, цифр и символа подчеркивания, начинающаяся с прописной буквы. Длина имени не может быть больше 250 символов. В именах запрещено использовать такие символы, как «пробел», «-», «*» и т.п.;

2) список доменов (типов) аргументов предиката, заключенный в круглые скобки.

Арность предиката – это количество аргументов, которые он принимает. В программе можно использовать два предиката с одним и тем же именем, но отличающиеся арностью.

Объявление предиката не заканчивается точкой. Доменами (типами) аргументов могут быть либо стандартные домены, либо домены, объявленные в разделе domains.

Например,

увлечение(человек, действие)

color(symbol)

мой_предикат(integer, symbol)

Раздел доменов. Домены позволяют задавать разные имена различным видам данных.

Например, если в разделе описания предикатов объявлен предикат

увлечение(человек, действие)

то выше надо описать в разделе доменов

DOMAINS

человек, действие = symbol

Одно из преимуществ объявления собственных доменов заключается в том, что компилятор может отслеживать ошибки типов (слайд 9):

DOMAINS

имя, пол = symbol

возраст = integer

PREDICATES

человек(имя, пол, возраст)

ровесник(X, Y) :- человек(X, Pol, Let), человек(Pol, Y, Let).

Здесь переменная Pol указана в одном правиле при обращении к разным типам данных. Отсюда мы делаем однозначный вывод: если переменная в предложении используется более чем в одном предикате, она должна быть одинаково объявлена в каждом из них.

6. Стандартные домены

Таблица 2.

Домен

Описание

Значение

short

короткое, знаковое, количественное

-32 768 .. 32 767

ushort

короткое, беззнаковое, количественное

0 .. 65 535

long

длинное, знаковое, количественное

-2 млрд. .. 2 млрд.

ulong

длинное, беззнаковое, количественное

0 .. 4 млрд.

integer

знаковое, количественное

или -32 768 .. 32 767

или -2 млрд. .. 2 млрд.

unsigned

беззнаковое, количественное

или 0 .. 65 535

или 0 .. 4 млрд.

byte

0 .. 255

word

0 .. 65 535

dword

0 .. 4 млрд.

char

символ, заключенный в апострофы

real

число с плавающей десятичной точкой (эквивалентен типу double в C) в интервале:

10-307 .. 10308

string

  1. последовательность символов, заключенных в кавычки

  2. последовательность букв, цифр и символов подчеркивания, начинающаяся со строчной буквы

symbol

то же, что и string