- •Оглавление
- •Часть I. Логические программы
- •Глава 1. Основные конструкции. .............………………………………………………………… .13
- •Глава 2. Программирование баз данных ..........………………………………………………... . . 27
- •Глава 3. Рекурсивное программирование ..........……………………………………………….. . 36
- •Глава 4. Вычислительная модель логических программ …………………………………….. .62
- •Глава 5. Теория логических программ ...........………………………………………………… . . .71
- •Часть II. Язык пролог
- •Глава 6. Чистый Пролог ................…………………………………………………………………... 80
- •Глава 7. Программирование на чистом Прологе ........…………………………………………. 86
- •Глава 8. Арифметика ..................…………………………………………………………………… 100
- •Глава 9. Анализ структуры термов……………………………………………………………….. 110
- •Глава 10. Металогические предикаты . ............. .118
- •Глава 12. Внелогические предикаты ......... , . . . 141
- •Глава 13. Практические рекомендации ....... ........ 154
- •Часть III. Современные методы программирования на прологе
- •Глава 14. Недетерминированное программирование ............. 164
- •Глава 16. Синтаксический анализ для грамматик, задаваемых определительными
Оглавление
Предисловие редактора перевода……………………………………………………………………5
Предисловие ……………………………………………………………………..…………………….. 6
Введение …………………………………………………..………................….……………………… 9
Часть I. Логические программы
Глава 1. Основные конструкции. .............………………………………………………………… .13
1.1. Факты ...................………………………………………………………………………… .13
1.2. Вопросы ..................……………………………………………………………………… .14
1.3. Логические переменные, подстановки и примеры ……………………………. ..... 15
1.4. Экзистенциальные вопросы ...........…………………………………………………… .16
1.5. Универсальные факты .............………………………………………………………... . 16
1.6. Конъюнктивные вопросы и общие переменные ....……………………………... . . 17
1.7. Правила ..................……………………………………………………………………... . .18
1.8. Простой абстрактный интерпретатор ........………………………………………... . . 21
1.9. Значение логической программы .........………………………………………….. . . 23
1.10. Резюме ..................……………………………………………………………………. . . 24
Глава 2. Программирование баз данных ..........………………………………………………... . . 27
2.1. Простые базы данных .............………………………………………………………. . . 27
Упражнения к разд. 2.1 ..............………………………………………………………….. . . 30
2.2. Структурированные и абстрактные данные .....…………………………………. . . 30
Упражнения к разд. 2.2 ..............……………………………………………………………. 32
2.3. Рекурсивные правила .............………………………………………………………. . . 32
Упражнения к разд. 2.3 ..............………………………………………………………….. . . 34
2.4. Логические программы и модель реляционной базы данных ……………….. . . 34
2.5. Дополнительные сведения ...........………………………………………………….. . . 35
Глава 3. Рекурсивное программирование ..........……………………………………………….. . 36
3.1. Арифметика ...........……………………………………………………………………... 36
Упражнения к разд. 3.1 .....………………………………………………………………….. 43
3.2. Списки ..........……………………………………………………………………………. .43
Упражнения к разд. 3.2 .....………………………………………………………………….. 49
3.3. Построение рекурсивных программ ..….…………………………………………... .50
Упражнения к разд. 3.3 ..........………………………………………………………………. 54
3.4. Бинарные деревья ...........………………………………………………………………. 54
Упражнения к разд. 3.4 ..........………………………………………………………………. 57
3.5. Работа с символьными выражениями .....………………………………………….. 57
Упражнения к разд. 3.5 ..........………………………………………………………………. 61
3.6. Дополнительные сведения ..………………………………………………………… . 62
Глава 4. Вычислительная модель логических программ …………………………………….. .62
4.1. Унификация ...........……………………………………………………………………. .62
Упражнения к разд. 4.1 ..........…………………………………………………………….. . 65
4.2. Абстрактный интерпретатор логических программ ……………………………..65
Упражнения к разд. 4.2 ............…………………………………………………………... ..70
4.3. Дополнительные сведения …………………………………………………………... .70
Глава 5. Теория логических программ ...........………………………………………………… . . .71
5.1. Семантика .................……………………………………………………………………...71
5.2. Корректность программы ............……………………………………………………...73
Упражнения к разд. 5.2 ..............……………………………………………………………. 74
5.3. Сложность .................…………………………………………………………………….. 74
Упражнения к разд. 5.3 ..............……………………………………………………………. 75
5.4. Деревья поиска ................……………………………………………………………… . 75
Упражнения к разд. 5.4 ..............……………………………………………………………. 77
5.5. Отрицание в логическом программировании .....………………………………… . 78
5.6. Дополнительные сведения ............…………………………………………………….. 78