"ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ" - читать интересную книгу автора (Клоксин У, Меллиш К) У.Клоксин, К.Меллиш ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ Для программистов и пользователей ЭВМ. ПРЕДИСЛОВИЕ РЕДАКТОРОВ ПЕРЕВОДА ПРЕДИСЛОВИЕ КО ВТОРОМУ ИЗДАНИЮ ПРЕДИСЛОВИЕ К ПЕРВОМУ ИЗДАНИЮ ГЛАВА 1 ВВЕДЕНИЕ 1.1. Факты 1.2. Вопросы 1.3. Переменные 1.4. Конъюнкции 1.5. Правила 1.6. Заключение и упражнения ГЛАВА 2 БОЛЕЕ ДЕТАЛЬНОЕ ОПИСАНИЕ 2.1. Синтаксические правила 2.1.1. Константы 2.1.2. Переменные 2.1.3. Структуры 2.2. Литеры 2.3. Операторы 2.4. Равенство и установление соответствия 2.5. Арифметика 2.6. Общая схема согласования целевых утверждений 2.6.1. Успешное доказательство конъюнкции целевых утверждений 2.6.2. Рассмотрение целевых утверждений при использовании механизма возврата 2.6.3. Установление соответствия ГЛАВА 3. ИСПОЛЬЗОВАНИЕ СТРУКТУР ДАННЫХ 3.1. Структуры и деревья 3.2. Списки 3.3. Принадлежность элементов списку 3.4. Пример: преобразование предложений 3.5. Пример: упорядочение по алфавиту 3.6. Использование предиката присоединить и спецификация деталей ГЛАВА 4. ВОЗВРАТ И ОТСЕЧЕНИЕ 4.1. Порождение множественных решений 4.2. Отсечение 4.3. Общие случаи использования отсечения 4.3.1. Подтверждение правильности выбора правила 4.3.2. Комбинация «отсечение-fail» 4.4. Проблемы, связанные с использованием отсечения ГЛАВА 5 ВВОД И ВЫВОД 5.1. Ввод и вывод термов 5.1.1. Вывод термов 5.1.2. Ввод термов 5.2. Ввод и вывод литер 5.2.1. Вывод литер 5.2.2. Ввод литер 5.3. Ввод предложений 5.4. Чтение файлов и запись в файлы 5.4.1. Запись в файлы 5.4.2. Чтение файлов 5.4.3. Ввод программ 5.5. Объявление операторов ГЛАВА 6. ВСТРОЕННЫЕ ПРЕДИКАТЫ 6.1. Ввод новых утверждений 6.2. Выполнение и невыполнение целевого утверждения 6.3. Классификация термов 6.4. Работа с утверждениями как с термами 6.5. Создание структур и работа с компонентами структур 6.6. Воздействие на процесс возврата 6.7. Формирование составных целевых утверждений 6.8. Равенство 6.9. Ввод и вывод данных 6.10. Обработка файлов 6.11. Вычисление арифметических выражений 6.12. Сравнение чисел 6.13. Наблюдение за выполнением программы на Прологе ГЛАВА 7. ЕЩЕ НЕСКОЛЬКО ПРИМЕРОВ ПРОГРАММ 7.1. Словарь в виде упорядоченного дерева 7.2. Поиск в лабиринте 7.3. Ханойские башни 7.4. Справочник комплектующих деталей 7.5. Обработка списков 7.6. Представление и обработка множеств 7.7. Сортировка 7.8. Использование базы данных: random, генатом, найтивсе 7.9. Поиск по графу 7.10. Просеивай Двойки, Просеивай Тройки 7.11. Символьное дифференцирование 7.12. Отображение структур и преобразование деревьев 7.13. Применение предикатов clause и retract ГЛАВА 8. ОТЛАДКА ПРОЛОГ-ПРОГРАММ 8.1. Расположение текстов программ 8.2. Типичные ошибки 8.3. Модель трассировки 8.4. Трассировка и контрольные точки 8.5. Фиксация ошибок ГЛАВА 9. ИСПОЛЬЗОВАНИЕ ГРАММАТИЧЕСКИХ ПРАВИЛ В ПРОЛОГЕ 9.1. Проблема синтаксического анализа 9.2. Описание синтаксического анализа на языке Пролог 9.3. Запись грамматических правил в Прологе 9.4. Присоединение дополнительных аргументов 9.5. Введение дополнительных условий 9.6. Заключение ГЛАВА 10. ПРОЛОГ И МАТЕМАТИЧЕСКАЯ ЛОГИКА 10.1. Краткое введение в исчисление предикатов 10.2. Приведение формул к стандартной форме 10.3. Форма записи дизъюнктов 10.4. Принцип резолюций и доказательство теорем 10.6. Пролог 10.7. Пролог и логическое программирование ГЛАВА 11. ПРОГРАММНЫЕ ПРОЕКТЫ НА ПРОЛОГЕ 11.1. Простые проекты 11.2. Более сложные проекты ПРИЛОЖЕНИЕ А. ОТВЕТЫ К НЕКОТОРЫМ УПРАЖНЕНИЯМ ПРИЛОЖЕНИЕ В. ПРОГРАММА ПРИВЕДЕНИЯ ФОРМУЛ ИСЧИСЛЕНИЯ ПРЕДИКАТОВ К СТАНДАРТНОЙ ФОРМЕ ПРИЛОЖЕНИЕ С. РАЗЛИЧНЫЕ ВЕРСИИ ЯЗЫКА ПРОЛОГ ПРИЛОЖЕНИЕ D. ПРОЛОГ ДЛЯ ЭВМ DEC SYSTEM-10 ПРИЛОЖЕНИЕ Е. МИКРО-ПРОЛОГ ПРИЛОЖЕНИЕ F. СИСТЕМА МПРОЛОГ[19]
ГЛАВА 2 БОЛЕЕ ДЕТАЛЬНОЕ ОПИСАНИЕ В данной главе приводится более полное описание тех элементов Пролога, которые были введены в предыдущей главе. Пролог предоставляет средства для структурирования данных, а также средства для структурирования той последовательности, в которой совершаются попытки согласовать целевые утверждения с базой данных. Для структурирования данных необходимо знание синтаксических правил, используемых для обозначения данных. Структурирование последовательности, в которой будут совершаться попытки согласовать целевые утверждения с базой данных, предполагает знание принципов работы механизма возврата.