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

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

Структуры

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

f (t1, t2,…,tn).

Здесь f – имя структуры; t1, t2,…,tn – термы, являющиеся его аргументами. Количество термов в структуре определяет ее арность. Структуры арности ноль являются простыми термами. 

Примером описания тернарной структуры может служить следующая конструкция:     data (12, "Mart", 1999).

Здесь data - имя структуры, объединяющей три простых терма. Из этой структуры, например, можно составить более сложную структуру, включив в нее еще один унарный составной        терм sotr("Петров").          Присвоив   этой       новой структуре объединительное имя data_sotr получим:

    data_sotr (data (12, "Mart", 1999), sotr("Петров")).

Замечание: Структура – это сложный объект, который можно использовать и обрабатывать аналогично простым термам. 

3. Структура программы на Турбо-Прологе

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

/* Комментарии */

<опции компилятора> constants /* раздел констант */ <описание констант > domains /* раздел доменов */ <описание доменов > database /* раздел базы данных */ <описание предикатов базы > predicates /* раздел предикатов */ <описание предикатов > goal /* раздел целей */ <целевое утверждение> clauses /* раздел утверждений */

<описание фактов и правил>

/* Комментарии */

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

Турбо-Пролог обеспечивает возможность включения в программу комментариев, которые обрамляются символами /* и */, и могут быть помещены в любом месте программы.

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

Раздел опций компилятора служит для установки режимов работы компилятора с помощью директив (опций). Некоторые директивы можно вводить также из Турбо-среды. Однако следует помнить, что директива в тексте программы имеет преобладающий приоритет и её нельзя отменить или заменить директивой из Турбо-среды. Краткие характеристики основных опций компилятора приводятся в приложении.

Разделconstants служит для объявления символических констант, которые используются в программе. Формат описания символических констант в Турбо-Прологе следующий:

< имя константы >=<значение константы >

Описание каждой константы размещается на отдельной строке, например: constants dwa =2 odin =1 sto =(10*(10-1)+10) pi =3.14

Имя константы следует начинать с маленькой буквы. Имена констант являются глобальными (т.е. область действия констант –  вся программа) и могут объявляться в программе только один раз. В программе может быть несколько разделов констант, но они должны быть обязательно объявлены до их использования. Если символические константы не используются, то раздел constants в программе будет отсутствовать.