- •Часть 1
- •1. Введение
- •2. Теоретические основы логического программирования.
- •2.1 Основные определения логики предикатов первого порядка
- •2.2 Стандартные формы представления формул исчисления предикатов.
- •3. Синтаксис языка программирования Пролог.
- •3.1. Основные элементы языка Пролог.
- •3.2.2. Вопросы.
- •3.2. Представление клауз Хорна на языке Пролог. Факты. Правила. Вопросы.
- •3.2.1. Представление фактов в Пролог—программах.
- •3.2.3. Правила.
- •3.2.4. Подстановки и примеры утверждений.
- •3.2.5. Пример Прологпрограммы.
- •4. Семантика языка программирования Пролог.
- •4.1 Декларативная и процедурная семантика программ на языке Пролог.
- •4.2. Вычислительная модель логической программы.
- •4.2.1. Унификация термов.
- •4.2.2. Общая схема согласования целевых утверждений.
- •4.2.3 Механизм поиска с возвратом.
- •5. Рекурсивное программирование на языке Пролог.
- •5.1 Рекурсивные правила.
- •5.2 Схема поиска решений в рекурсивных программах.
- •5.3. Списки и их представление на Прологе.
- •Основные определения.
- •Унификация списков.
- •Предикат list.
- •Типовые процедуры обработки списков на языке Пролог.
- •Предикат length.
- •5.4.2. Предикат member.
- •Предикат first.
- •Предикат last.
- •Предикат next.
- •Предикат append.
- •Предикат add.
- •Предикаты revers1 и revers2.
- •Предикат delete.
- •5.4.10. Предикат number_list.
- •5.4.11. Предикат sumlist.
- •5.4.12. Предикат delrepeat.
- •5.5 Множества и их представление на языке Пролог. Простые программы обработки множеств.
- •Основные определения.
- •Предикат unionset.
- •Пересечение множеств.
- •Разность множеств.
- •Определение подмножества.
- •5.5.6. Декартово произведение множеств.
- •Прологпрограммы сортировки списков.
- •Метод прямого выбора.
- •Метод вставки.
- •5.6.3. Метод перестановок.
- •6. Стандартные предикаты языка Пролог.
- •Арифметические предикаты.
- •6.2. Предикаты сравнения арифметических выражений и символьных термов.
- •6.3. Предикаты определения типов термов.
- •6.4. Примеры программ с использованием арифметических предикатов.
- •6.5. Предикаты вводавывода термов и символов.
- •6.5.1. Ввод/вывод термов.
- •6.5.2. Ввод/вывод символов.
- •6.6. Стандартные предикаты управления логическим выводом.
- •6.7. Стандартные предикаты обработки списков.
- •6.8. Стандартные предикаты обработки строк.
- •7. Система программирования Arity Prolog 5.0.
- •Описание среды программирования Arity Prolog 5.0.
- •Методические указания по лабораторным работам.
- •7.2.1. Лабораторная работа № 1. Простейшая программа на языке Пролог.
- •7.2.2. Лабораторная работа № 2. Использование арифметических операций и унификации арифметических выражений.
- •7.2.3. Лабораторная работа 3.1. Создание базы данных “Cессия” и запросов к этой базе данных на языке Пролог с использованием стандартного предиката fail.
- •Приложение 2. Варианты заданий по лабораторной работе 4.
- •Приложение 3. Варианты заданий по лабораторной работе 5.
- •Список литературы.
7. Система программирования Arity Prolog 5.0.
Описание среды программирования Arity Prolog 5.0.
Структура окна среды программирования Arity Prolog представлена на рис 7.1
Система Arity Prolog имеет главное меню и рабочие окна: окно редактирования, окно диалога, окно справки и окно трассировки. При запуске системы на экране отображается окно диалога и главное меню. Переход из окна диалога в окно редактирования, изображенное на рис. 7.1, и обратно в окно диалога производится нажатием функциональной клавиши F8 или с помощью команды главного меню Switch. Переход в главное меню производится нажатием функциональной клавиши Alt.
Главное меню содержит следующие элементы:
File команды создания, открытия, сохранения файлов и баз данных, временного выхода из среды в операционную систему MS DOS и выхода из среды программирования;
Edit команды редактирования исходного текста программ;
Buffers команды перехода из одного буфера в другой, установки действий, выполняемых при таком переходе, интерпретации программы;
Info команды выдачи информации о среде программирования и изменения главного окна среды;
Debug команды управления средствами отладки и трассировки;
Switch команда перехода из окна редактирования в окно диалога и наоборот;
Help команды выдачи справочной информации.
Подменю File включает подкоманды:
New создание нового буфера в окне редактирования;
Open File загрузка программы из файла в буфер;
Consult File интерпретация программы из файла;
Merge File присоединение программы из файла к буферу;
Save File сохранение программы в файле;
Save File as сохранение программы в файле с другим именем;
Restore Db перезапись базы данных;
Restore Db from перезапись базы данных из файла;
Save Db сохранение базы данных;
Save Db as сохранение базы данных в файле с другим именем.
Подменю Edit включает подкоманды:
Find, Find Selected, Repeat Last Find, Change команды поиска фрагментов текста;
Undo, Cut, Copy, Paste, Clear команды выделения, копирования и переноса фрагментов текста.
Подменю Buffers включает подкоманды:
Goto , Goto Last команды перехода из одного буфера в другой;
Erase Buffer очистка буфера;
Save All Buffers сохранение содержимого всех буферов на диске;
Reconsult Buffer интерпретация содержимого текущего буфера;
Save on Exit сохранение содержимого текущего буфера при переходе в режим диалога;
Reconsult on Exit интерпретация содержимого текущего буфера при переходе в режим диалога.
Подменю Info включает подкоманды:
Statistics выдача информации о среде программирования;
Modify Windows изменение параметров окон среды программирования.
Подменю Debug включает подкоманды:
Spy установка контрольной точки;
Trace on установка режима трассировки;
Clear All Spy Points удаление всех контрольных точек.
Разработка программы на языке Пролог в среде программирования Arity Prolog выполняется следующим образом:
С помощью команды File/New создается новый буфер и происходит переход в окно редактирования.
В окне редактирования пользователь набирает текст программы.
С помощью команды Buffers/Reconsult программа, находящаяся в текущем буфере, интерпретируется. Затем производится переход в окно диалога с помощью клавиши F8.
Если программа успешна интерпретирована, то выдается сообщение: «Reconsulting ... APIBUF2.ARI [ buffer 1 ].» Если программа содержит синтаксические ошибки, то интерпретатор Arity Prolog выдаст соответствующие сообщения об ошибках, которые надо исправить и повторить команду Buffers/Reconsult.
При успешном завершении интерпретации программы можно перейти в окно диалога и задать системе запрос.
С помощью команды File/Save as или File/Save программа из текущего буфера сохраняется в файле на диске.
