
- •Часть 1
- •1. Введение
- •2. Теоретические основы логического программирования.
- •2.1 Основные определения логики предикатов первого порядка
- •2.2 Стандартные формы представления формул исчисления предикатов.
- •3. Синтаксис языка программирования Пролог.
- •3.1. Основные элементы языка Пролог.
- •3.2. Представление клауз Хорна на языке Пролог. Факты. Правила. Вопросы.
- •3.2.1. Представление фактов в Пролог—программах.
- •3.2.2. Вопросы.
- •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.
- •Список литературы.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Московский государственный горный университет
Кафедра «Вычислительные машины»
КАРПОВИЧ Е.Е.
Утверждено УМС МГГУ в качестве учебного пособия
Программирование на языке Пролог
Учебное пособие
Для студентов специальности АСП дневного отделения
Часть 1
Москва
2002
УДК 681.142.2(075.8)
Карпович Е.Е. Программирование на языке Пролог. Учебное пособие, часть 1.-М.: МГГУ, 2002 г., с. 97.
В пособии представлено описание синтаксиса и семантики декларативного языка логического программирования Пролог, рассмотрены принципы рекурсивного программирования на Прологе. Приведены примеры рекурсивных программ обработки списков и множеств. Описаны возможности интерпретатора Arity Prolog, и приведено описание стандартных предикатов, предопределенных в системе программирования Arity Prolog. Рекомендуется в качестве учебного пособия по дисциплинам «Логическое программирование» и «Интеллектуальные подсистемы САПР» для студентов, обучающихся по специальности «Автоматизированные системы проектирования».
Рецензенты: доктор техн. наук, проф. кафедры АСУ Московского государственного горного университета Куприянов В.В.; канд. техн. наук проф. кафедры ТиМИБ Московского государственного социального университета Хорев П. Б.
© Московский государственный горный университет
1. Введение 4
2. Теоретические основы логического программирования. 9
2.1 Основные определения логики предикатов первого порядка 9
2.2 Стандартные формы представления формул исчисления предикатов. 11
3. Синтаксис языка программирования Пролог. 12
3.1. Основные элементы языка Пролог. 13
3.2. Представление клауз Хорна на языке Пролог. Факты. Правила. Вопросы. 15
4. Семантика языка программирования Пролог. 21
4.1 Декларативная и процедурная семантика программ на языке Пролог. 21
4.2. Вычислительная модель логической программы. 23
5. Рекурсивное программирование на языке Пролог. 33
5.1 Рекурсивные правила. 33
5.2 Схема поиска решений в рекурсивных программах. 35
5.3. Списки и их представление на Прологе. 37
5.4. Типовые процедуры обработки списков на языке Пролог. 39
5.5 Множества и их представление на языке Пролог. Простые программы обработки множеств. 54
5.6 Прологпрограммы сортировки списков. 61
6. Стандартные предикаты языка Пролог. 65
6.1. Арифметические предикаты. 65
6.2. Предикаты сравнения арифметических выражений и символьных термов. 66
6.3. Предикаты определения типов термов. 67
6.4. Примеры программ с использованием арифметических предикатов. 67
6.5. Предикаты вводавывода термов и символов. 69
6.6. Стандартные предикаты управления логическим выводом. 72
6.7. Стандартные предикаты обработки списков. 74
6.8. Стандартные предикаты обработки строк. 75
7. Система программирования Arity Prolog 5.0. 77
7.1. Описание среды программирования Arity Prolog 5.0. 77
7.2. Методические указания по лабораторным работам. 79
Приложение 1. Варианты заданий по лабораторной работе 2 83
Приложение 2. Варианты заданий по лабораторной работе 4. 86
Приложение 3. Варианты заданий по лабораторной работе 5. 89
Список литературы. 95