- •Основы языка Пролог: атом, переменная, функтор, предикат, терм, литерал, дизъюнкт. Структура Пролог-программы: факты, правила, цель. Редактор и интерпретатор.
- •B, abcXyz, x_123, efg_hij, коля, слесарь, 'Это также атом Пролога',
- •1989 - Компоненты структуры
- •"Какие военнослужащие имеют звание полковника?"
- •"Имеют ли Абрамов и Федоров одинаковые звания?"
- •"Какое звание у Абрамова и, если обозначить звание Абрамова r, имеет ли Федоров то же звание r?"
Основы языка Пролог: атом, переменная, функтор, предикат, терм, литерал, дизъюнкт. Структура Пролог-программы: факты, правила, цель. Редактор и интерпретатор.
Переменные всегда начинаются с заглавной буквы или символа подчеркивания!
Атом - это отдельный объект, считающийся элементарным. В Прологе атом представляется последовательностью букв нижнего и верхнего регистра, цифр и символа подчеркивания '_', начинающейся со строчной буквы. Кроме того, любой набор допустимых символов, заключенный в апострофы, также является атомом. Наконец, комбинации специальных символов + - * = < > : & также являются атомами (следует отметить, что набор этих символов может отличаться в различных версиях Пролога).
Примеры корректных атомов:
B, abcXyz, x_123, efg_hij, коля, слесарь, 'Это также атом Пролога',
+, ::, <---->, ***
Правила. Под правилами в Прологе понимаются наиболее общие утверждения об объектах и отношениях между ними. Пролог-правило имеет вид фразовой формы: заключение:-усл1, усл2, … , услN. Данное выражение считается основным в Прологе. Языки, подобные Прологу, считаются языками типа “если-то” :заключение истинно, если истинными являются все условия, перечисленные в правой части.
Факты. Факт понимается как запись того отношения, значение которого истинно. Форма записи факта : имя_предиката(аргумент {, аргумент}).
При этом:
1) Все имена предикатов и аргументов должны начинаться со строчной латинской буквы.
2) Перечисление аргументов - через запятую.
3) Каждый факт должен заканчиваться точкой.
4) Количество аргументов и вид отношений (направления отношений) определяются программистом и не меняются при выполнении программы.
Взгляните на следующие примеры фактов, приведенные вместе с возможной их интерпретацией на естественном языке:
ценный(золото). Золото является ценным.
женщина(джейн). Джейн - женщина.
владеет(джон,золото). Джон владеет золотом.
отец(джон,мэри). Джон является отцом Мэри.
дает(джон,книга,мэри). Джон дает Мэри книгу.
Предикат (predicate) - синтаксическая конструкция, состоящая из предикатного символа (функтора) и последовательности (возможно, пустой) аргументов. Предикат может обозначать некоторую подпрограмму или набор подпрограмм (если речь идёт о предикате с переменным числом аргументов).
Отношение в Прологе называется предикатом.
Аргументы - это объекты, которые связываются этим отношением
Терм (term) - синтаксическая конструкция, обозначающая элемент данных или экземпляр класса. Различаются простые термы, составные термы, а также вызовы функций в предложениях.
Функтор (functor) - имя (символ или метапеременная), которому приписана некоторая арность (число аргументов). Метапеременная, используемая в качестве функтора, называется метафунктором.
Пролог, предусматривает только один тип данных, называемый термом. Любой объект задачи, которую надлежит формализовать, равно как и любое отношение между объектами, представляется термом того или иного вида. Например, можно представить дату следующим термом:
Пример:
дата(четверг, 22, март, 1989)
Это пример структурированного терма, который обычно называют просто структурой. Структура состоит из функтора, который представляет собой имя отношения, и последовательности компонентов, представляющих собой объекты в отношении. Число компонентов в структуре называется размерность структуры. В данном примере
дата - функтор структуры,
четверг
22
март