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

3.Синтаксис Пролога

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

Рис.3.1. Классификация объектов данных

Атомы, переменные и числа в Прологе относятся к простым объектам.

Для представления объектов, имеющих несколько компонент (арность которых >0) используются структурированные объекты, которые представляются в виде деревьев.

Тип объекта распознается по его синтаксической форме.

АТОМ может быть символом (symbol) или строкой(string).

Символы:

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

(например,nil | x23 | x_y | ann)

2) специальные символы, кроме тех специальных символов, которые имеют в Прологе заранее определенный смысл(например, :-если - то )

::=, <--->, ... и т.д.

3) цепочки символов, заключенные в одинарные кавычки

‘Tom’ ‘Ann’ ‘X’.

Строка:

Выделяется двойными кавычками и может содержать любую комбинацию литер:

“New York”, ”We study Prolog”.

Так как symbol/string взаимозаменяемы, то их отличия несущественны.

ЧИСЛО - как обычно

ПЕРЕМЕННАЯ- цепочка, состоящая из букв, цифр, символов подчеркивания. Начинается с прописной буквы или символа подчеркивания

X Result List_student _x23

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

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

Если анонимная переменная появляется в цели, то ее значение не выводится при выдаче результата.

СТРУКТУРА-это объект, который состоит из несколькиx компонентов. Эти компоненты тоже могут быть структурами. Все структурированные объекты могут быть изображены в виде деревьев. Корнем дерева является функтор.

student(fio(“orlov”,”dmitriy”),address(“pskov”,”mira”,53))

Составной объект student имеет две части: объект fio(“orlov”,”dvitriy”) и объект address(“pskov”,”mira”,53). Функторы у этих объектов – fio и address.

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

3.2. Составные объекты и альтернативные домены. В утверждениях объекты представляют собой данные.

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

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

Аргументы составного объекта данных могут быть сами составными объектами.

student

/ \

name address

/ \ / | \

first last city street housenumb