Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Первая программа




ГЛАВНОЕ МЕНЮ

В папке с установленным SWI/PROLOG войдите в директорию pl/bin, содержащую файл plwin.exe, и запустите его. На экране появится главное меню и главное (диалоговое) окно с приглашением SWI/PROLOG (см рис.1).

 

Рис.1 Вид диалогового окна SWI/PROLOG

Главное меню можно сделать активным, нажав F10 или Alt. Когда главное меню активно, его элементы можно выбрать с помощью клавиш управления курсором () и последующим нажатием клавиши Enter. Выбирать элементы главного меню можно также и мышью.

ПЕРВАЯ ПРОГРАММА

Программа

на Прологе состоит из фактов и правил, которые образуют базу знаний Пролог-программы, и запроса к этой базе, который задает цель поиска решений.

Предикат

описывают отношение между объектами, которые являются аргументами предиката.

Факты

Констатируют наличие заданного предикатом отношения между указанными объектами.

ПРИМЕР

Констатация факта в предложениии

Эллен любит теннис.

в синтаксисе Пролога выглядит так:

Имя предиката ( функтора ) и объекта должно начинаться с маленькой буквы и может содержать латинские буквы, кириллицу, цифры и символ подчеркивания (_). Кириллица используется наравне с латинскими буквами. Обычно предикатам дают такие имена, чтобы они отражали смысл отношения. Например: main, add_file_name. Два предиката могут иметь одинаковые имена, тогда система распознает их как разные предикаты, если они имеют различное число аргументов ( арность ). Например, любит/2, любит/3.

Имя предиката может совпадать с именем какого-либо встроенного предиката SWI/PROLOG-а. Однако, если совпали имена пользовательского и встроенного предиката, то при обращении к нему (либо из интерпретатора, либо из программы), будет вызван пользовательский предикат, т.е. пользовательское определение «перекроет» предопределенное в SWI/PROLOG-е.

Правила

описывают связи между предикатами.

ПРИМЕР

Билл любит все, что любит Том.

в синтаксисе Пролога

любит('Билл',Нечто):- любит('Том',Нечто).

Правило B:-A соответствует импликации A→BЕСЛИ A, ТО B»).

В общем виде правило - это конструкция вида:

P0:-P1,P2,…,Pn.

которая читается «P0 истинно, если P1 и P2 и... Pn истинны".

Предикат P0 называется заголовком правила, выражение P1,P2,…,Pn - телом правила, а предикаты Pi - подцелями правила. Запятая означает логическое " И ".

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

Процедура

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

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

Переменная

- поименованная область памяти, где может храниться значение.

Если переменная не связана со значением – она называется свободной переменной.

Унификация

- процесс получения свободной переменной значения в результате сопоставления при логическом выводе в SWI/PROLOG-е.

Понятие переменной в логическом программировании отличается от базового понятия переменной, которое вводится в структурном программировании. Прежде всего, это отличие заключается в том, что переменная в SWI/PROLOG-е, однажды получив свое значение при унификации в процессе работы программы, не может его изменить, т.е. она скорее является аналогом математического понятия «переменная» – неизвестная величина. Переменная в SWI/PROLOG не имеет предопределенного типа данных и может быть связана с значением любого типа данных.

Переменная в SWI/PROLOG обозначается как последовательность латинских букв, кириллицы и цифр, начинающаяся с заглавной буквы или символа подчеркивания (_). Заметим, что если значение аргумента предиката или его имя начинается с заглавной буквы, то оно пишется в апострофах (см. предыдущий пример).

В SWI/PROLOG различаются строчные и заглавные буквы.

Рассмотрим следующую программу на SWI/PROLOG, которую будем использовать для иллюстрации процессов создания, выполнения и редактирования Пролог-программ.

ПРОГРАММА 1. /* кто что любит */

любит('Эллен',теннис). %Эллен любит теннис

любит('Джон',футбол). %Джон любит футбол

любит('Том',бейсбол). %Том любит бейсбол

любит('Эрик',плавание). %Эрик любит плавание

любит('Марк',теннис). %Марк любит теннис

любит('Билл',X):-любит('Том',X). %Билл любит то, что любит Том

Комментарий в строке программы начинается с символа % и заканчивается концом строки. Блок комментариев выделяется специальными скобками: /* (начало) и */ (конец).





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 613 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2557 - | 2402 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.