ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ 3

ГЛАВА 1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ С ПОМОЩЬЮ ПРОГРАММЫ НА ПРОЛОГЕ 5
1.1. Факты 7
1.2. Вопросы или целевые утверждения 8
1.3. Переменные 9
1.4. Правила 9
1.5. Конъюнкция целевых утверждений 12
1.6. Пополнение базы знаний 12
1.7. Структура программы на языке Visual Prolog 13
1.8. Реляционный язык Пролог 16
Заключение 18
Пример выполнения контрольного задания 19
Контрольные вопросы 21
Контрольные задания 22

ГЛАВА 2. ОБЩАЯ СХЕМА ВЫПОЛНЕНИЯ ПРОГРАММЫ НА ЯЗЫКЕ ПРОЛОГ 29
2.1. Общие сведения 29
2.2. Модель в виде И-ИЛИ-дерева процесса доказательства
целевого запроса 30
2.3. Алгоритм работы интерпретатора 31
Контрольные вопросы 36
Контрольные задания 36

ГЛАВА 3. АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ. ПРЕДИКАТЫ ВВОДА И ВЫВОДА ТЕРМОВ 37
3.1. Термы 37
3.2. Константы 37
3.3. Переменные 37
3.4. Арифметические выражения 38
3.5. Предикаты сравнения значений арифметических выражений 39
3.6. Ввод и вывод 40
Контрольные вопросы 41

ГЛАВА 4. УПРАВЛЕНИЕ ВЫПОЛНЕНИЕМ ПРОГРАММЫ 42
4.1. Цепочка 42
4.2. Выбор среди альтернатив 42
4.3. Использование fail и возврата для организации
повторяющегося процесса (цикла) 44
4.4. Преобразование базы знаний 46
4.5. Накопление суммы 49
4.6. Создание бесконечных альтернатив при помощи repeat 51
4.7. Ввод и вывод фактов динамической базы данных 52
Пример выполнения контрольного задания 54
Контрольные вопросы 56
Контрольные задания 56

ГЛАВА 5. РЕКУРСИЯ 58
5.1. Введение 59
5.2. Как писать рекурсивные определения 60
5.3. Нисходящая рекурсия 61
5.4. Восходящая рекурсия 63
Контрольные вопросы 65
Контрольные задания 65

ГЛАВА 6. ОТСЕЧЕНИЕ 68
6.1. Введение 68
6.2. Воздействие отсечения на процесс выполнения 68
6.3. Использование отсечения 69
6.4. Ловушки отсечения 71
Контрольные вопросы 72
Контрольные задания 73

ГЛАВА 7. СПИСКИ 74
7.1. Введение 74
7.2. Описание списков в языке Visual Prolog 74
7.3. Голова и хвост списка 75
7.4. Унификация списков как аргументов предикатов 76
7.5. Принадлежность элементов списку 77
7.6. Ввод, вывод списка как терма 79
7.7. Использование предиката присоединить 80
7.8. Использование предиката присоединить
для разделения списка 81
7.9. Операции со списками 83
7.10. Составные списки 86
Пример выполнения контрольного задания 87
Контрольные вопросы 89
Контрольное задание 89

ГЛАВА 8. СТРОКИ, СИМВОЛЫ И СИМВОЛИЧЕСКИЕ ИМЕНА 90
8.1. Строки 90
8.2. Встроенные предикаты обработки строк 90
8.3. Сравнение символов, строк и символических имен 93
Пример выполнения контрольного задания 94
Контрольные вопросы 95
Контрольные задания 95

ГЛАВА 9. СТРУКТУРЫ 97
9.1. Введение в структуры 97
9.2. Описание смешанных областей данных 100
9.3. Описание области с множественным типом данных 101
Контрольные вопросы 102
Контрольное задание 102

ГЛАВА 10. СОЗДАНИЕ ПРИЛОЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА В СРЕДЕ VISUAL PROLOG 7.0 103
10.1. Создание проекта 106
10.2. Создание модального диалога 108
10.3. Изменение меню 114
10.4. Изменение панели инструментов 117
10.5. Ввод основного кода в программу 119
10.6. Инкапсуляция интерактивного кода 121
Заключение 128

ПРИЛОЖЕНИЕ 1. ОБЗОР СРЕДЫ 129

ПРИЛОЖЕНИЕ 2. ЧТО НОВОГО В VISUAL PROLOG 7.0 134

СПИСОК ЛИТЕРАТУРЫ 141