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

2. Основные элементы языка

2.1. Имена

Имена используются для обозначения переменных, символьных констант, объявлений типов и предикатов.

Имя может начинаться с любой латинской буквы или символа подчеркивания "_", затем следует любая комбинация букв, цифр и символа "_".

При образовании имен необходимо учитывать следующие правила:

- имена строковых констант должны начинаться с маленькой буквы;

- имена переменных должны начинаться с большой буквы или символа подчеркивания "_".

2.2. Типы данных

Имеется следующие стандартные типы данных:

symbol

Символьная строка, которая начинается со строчной буквы или заключена в кавычки

string

Также символьная строка, но имеющая другое внутреннее представление

char

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

integer

Целое число в диапазоне от -32768 до 32767

real

Любое вещественное число

2.3. Константы и переменные

Константы Пролога должны быть записаны:

а) либо с маленькой буквы (исключая кириллицу):

fact1, summa, person ;

б) либо стоять в одинарных кавычках (отдельный символ) или бинарных кавычках (строковая константа):

'c' , "summa=", "сумма" ;

в) либо они являются числами, целыми или вещественными:

25, 0.5, 3.2e-4 .

Таким образом, константы могут быть любого из стандартных типов Пролога. В программе тип констант явно не указывается.

Переменные – это цепочки, состоящие из букв, цифр и символа подчеркивания. Имя переменной всегда начинается с прописной буквы или с символа подчеркивания:

X, Summa, List_of_members, _x23.

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

2.4. Программные секции Пролога

Программа на Прологе состоит из нескольких программных секций, каждой из которых предшествует ключевое слово, представленное в следующей таблице:

Domains

Определение типов данных

Database

Объявление предикатов базы данных

Predicates

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

Clauses

Определение фактов или правил

Goal

Цель

В программе необязательно наличие всех секций. Обычно в небольшой программе бывают разделы Predicates и Clauses.

В программе может использоваться только одна цель; если цель не указана, Пролог цель запросит. Обычно цель записывают в конце программы.

Ключевые слова разделов можно записывать прописными и строчными буквами.

Комментарии к программе записываются либо парами символов слэш-звездочка:

/* это комментарий,

он занимает несколько строк */

либо остаток строки записывается после знака процента:

% это тоже комментарий

2.4.1. Секция Domains

Для объявления секции domains используются следующие форматы:

1. Первый формат:

name = t ,

где name – имя Пролога, t – один из стандартных типов. Это объявление используется для объектов, которые синтаксически схожи, а семантически различны. Например, предложение

age, number = integer

объявляет два domains целого типа.

2. Второй формат:

mylist = elevent* ,

где mylist – объявление списка элементов, element – элемент, ранее описанный пользователем в Domains либо один из стандартных типов Турбо-Пролога, “*” обозначает список. Hапример,

namlist = integer*

объявляет список целых чисел.

3. Третий формат описывает сложную область определения, задает описание структур.

region = functor1(d1,d2,...); functor2(d3,d4,...);...

где region объявляет сложную область, functor1,functor2 – имена альтернатив составной области, d1,d1,...,d3,d4 – один из типов Пролога, стандартный или определенный ранее в программе в Domains (описание типов может отсутствовать).

Пример:

object = int(integer); str(string)

mesto = sprava; sleva .

Данный способ указания Domains позволяет также рекурсивно описывать объекты сложных типов (деревьев).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]