Язык программирования ПРОЛОГСтобо Дж.
Пер. с англ. — М.: Радио и Связь, 1993. — 368 с.: ил.
Перевод с англ. Н.Г. Волченкова, С.Г. Григорьева
Под редакцией Н.Г. Волченкова
ISBN 5-256-00921-4 (рус.)
ISBN 0 273 029339 (англ.)
АННОТАЦИЯ:В книге автора из США содержится большой набор методов программирования, которые можно рассматривать как инструментарий для решения самых различных задач программирования. Детально представлен процесс разработки программных систем, начиная от анализа и кончая реализацией и тестированием. В приложении даны полные тексты программ, решения к упражнениям.
Для инженерно-технических работников.
СОДЕРЖАНИЕ:Предисловие 6
Предисловие к русскому изданию 9
Глава 1. Программирование с помощью фактов 11
1.1. Объекты данных: терм 11
1.2. Полноценная программа 13
1.3. Рекурсия в структурах 17
1.4. Сопоставление структур 19
1.5. Выводы 21
Глава 2. Программирование с помощью правил 23
2.1. Правила 23
2.2. Терминология: процедуры, утверждения и предикаты 26
2.3. Процедурный режим: порядок согласования целей 28
2.3.1. Согласование цели 29
2.3.2. Поиск для сопоставления 29
2.3.3. Отказы для целей 31
2.3.4. Генерация альтернативных ответов на вопросы 33
2.4. Прогрессирующая подстановка 38
2.5. Сеанс взаимодействия 42
2.6. Выводы 47
Глава 3. Рекурсия в правилах 48
3.1. Рекурсивные правила 48
3.2. Построение рекурсивных структур 50
3.3. Нотация для списков 55
3.4. Разработка процедур посредством анализа состояний 59
3.5. Еще один метод разработки процедур 69
3.6. Списки и структурирование данных 73
3.7. Выводы 77
Глава 4. Операция над термами 79
4.1. Арифметические операции 79
4.2. Операции сравнения 81
4.3. Операции проверки типа 84
4.4. Операции конструирования термов 92
4.5. Проверка термов на равенство 98
4.6. Выводы 102
Глава 5. Ввод и вывод 103
5.1. Ввод и вывод термов 103
5.2. Возможности более гибкого ввода и вывода 109
5.2.1. Определение оператора 109
5.2.2. Ввод и вывод символов 119
5.3. Работа с файлами 122
5.4. Выводы 126
Глава 6. Управление выполнением программ 127
6.1. Сокращение поиска: "отсечение" 127
6.1.1. Предотвращение бесполезных попыток поиска 129
6.1.2. Обеспечение взаимной исключительности 131
6.2. Вынуждаемый возврат и повторение: предикаты fail и repeat 138
6.3. Другие средства, предназначенные для управления 146
6.3.1. Выражение альтернатив 146
6.3.2. Комбинация отсечения и предиката fail 149
6.4. Выводы 151
Глава 7. Программы как данные 153
7.1. Модификация утверждений программы 154
7.1.1. Управление базой данных 156
7.1.2. Накопление результатов с помощью вынуждаемого возврата 160
7.1.3. Глобальные переменные 166
7.2. Метапрограммирование 168
7.2.1. Метапрограммирование и программные структуры 169
7.2.2. Интерпретатор Пролога на Прологе 172
7.3. Выводы 177
Глава 8. Грамматические правила 178
8.1. НС-грамматика 178
8.2. Грамматика, определяемая утверждениями 182
8.2.1. Согласование по роду, лицу и числу 187
8.2.2. Поверхностная и глубинная структура 191
8.3. Включение словаря 194
8.4. Прагматические аспекты построения синтаксических анализаторов 196
8.5. Выводы 205
Глава 9. Тестирование, отладка и документирование 207
9.1. Тестирование 207
9.2. Отладка 211
9.3. Расширенный интерпретатор для отладки 218
9.4. Документирование 229
9.5. Выводы 231
Глава 10. Написание процедуры и программ 232
Глава 11. Система решения задач 235
11.1. Требования к системе 235
11.2. Алгоритм решения задач 236
11.2.1. Представление состояния задачи 236
11.2.2. Представление методов решения задачи 238
11.2.3. Алгоритм планирования 240
11.3. Программа, удовлетворяющая системным ограничениям 243
11.3.1. Настройка подцели ?- начальное_состояние(Si) 244
11.3.2. Настройка подцели ?- разработка_плана(Задача, Si, План, Sf) 244
11.3.3. Настройка подцели ?- подтверждение_плана(План) 248
11.3.4. Настройка подцели ?- модификация_состояния(Sf) 248
11.4. Тестирование и реализация программы 249
11.4.1. Поиск ошибок 250
11.4.2. Исправление программы 255
11.4.3. Настройка представления знаний 258
11.4.4. Добавление новых действий 260
11.5. Дальнейшее развитие программы 272
11.5.1. Переменные в целях 272
11.5.2. Ограничения алгоритма планирования 273
11.6. Заключительные замечания 274
Глава 12. Электронный дневник 276
12.1. Требования к системе 276
12.2. Проект системы 278
12.3. Реализация 283
12.3.1. Календарь 284
12.3.2. Представление данных правилами 293
12.3.3. Обработка файла 294
12.3.4. Ввод данных 295
12.3.5. Управление дневником 307
12.4. Расширение системы 312
12.4.1. Другие виды нагрузок 313
12.4.2. Другие операции с дневником 313
Приложение 1. Текст окончательной версии программы, реализующей систему решения задач 316
Приложение 2. Текст окончательной версии программы, реализующей систему электронного дневника 329
Приложение 3. Стандарт языка Пролог 348
Приложение 4. Ответы к упражнениям 350
Приложение 5. Список символов кода Ascii 366
Список литературы 366
ПРИМЕЧАНИЕ:Присутствуют ВСЕ страницы, OCR-слой, интерактивное оглавление.