Логическое программирование. Элементы и конструкции языка Турбо-Пролог. Средства отладки Турбо-Пролога, страница 5

sin (sasha, ana) :- roditel (ana, sasha), malchik (sasha).

Данное правило читается следующим образом: “Саша (sasha) является сыном (sin) Анны (ana), если Анна (ana) является родителем (roditel) Саши (sasha) и (,) Саша (sasha) – это мальчик (malchik)”.

Цели

Цели – это особый вид утверждений, использующихся для постановки задач, которые должна решать программа. Формулируются цели в виде вопросов, выясняющих установленность или возможность установления фактов. Цель может быть простой или составной. Простая цель состоит из одного вопроса, описываемого аналогично факту программы. Составная цель включает две или более подцели, разделяемые запятыми. Цель может быть задана предикатом, обозначающим заголовок правила. Цель может быть также задана правилом, состоящим из заголовка и тела правила.

Объекты данных

Все объекты выражений Турбо-Пролога (предикатов, фактов, правил, целей) называются  термами. Каждый терм характеризуется своим именем и областью значений. Для описания типов области значений термов служат домены. Турбо-Пролог имеет 6 встроенных (стандартных) типов доменов: символы, целые числа, действительные числа, строки, символические имена и файлы. Ниже в табл.1. описаны все стандартные типы доменов Турбо-Пролога.

Таблица 1.

Стандартные типы доменов Турбо-Пролога

Тип данных

Ключевое слово

Диапазон значений и правила описаний

Примеры использования в Турбо-Прологе 

1. Символы

char

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

’A’; ’a’; ’%’; 

’7’; ...

2. Целые числа

integer

 От -32768 до +32768

-63; 84; 2349; 32763; ...

3. Действительные числа

real

От +1Е-307 до +1Е308

-3.15; -0.31;

12.3E -5; 4E27; ...

4. Строки

string

Строки символов (не более 250), которые заключаются в кавычки

"Петров";

"125_31";

"today"; ...

5. Символические имена

symbol

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

flover;

, school_day; nd21; ...

"Atom";

"Атом-1";

"a_b_c"; ... 

6. Файлы

file

Допустимые имена файлов

mail.txt; ...

Термы

Как определялось выше, все объекты в выражениях ТурбоПролога являются термами. Различают простые и составные термы. К простым термам относятся константы и переменные.

К составным – структуры и списки. 

Константы

Константы в Турбо-Прологе представляются в виде отдельных символов (домен char), целых и действительных чисел (домены integer,real), а также в виде совокупностей символов (т.е. имен), принадлежащих к стандартным доменам stringи symbol. Областью действия констант является вся программа.

Переменные

Переменные в Турбо-Прологе служат для обозначения объектов, на которые нельзя ссылаться по имени. Они, в отличие от процедурных языков программирования, определяют не некоторую область зарезервированной памяти, а имя самого неизвестного, и получают свои значения во время выполнения программы при сопоставлении их с константами. Синтаксически переменная ставится на место неизвестного терма в выражениях (фактах, правилах, целях) и должна начинаться с большой буквы, или с символа подчеркивания.

Например:

roditel (X, vera). или roditel (_X, vera).

Так определяется цель на поиск всех родителей Веры (vera).

Переменная, состоящая только из символа подчеркивания, называется анонимной. Анонимная переменная (в отличие от именованной) используется в том случае, если принимаемое ей значение не существенно для данного выражения, т.е. может быть любым.